#!/bin/bash

# **make_cert.sh**

# Create a CA hierarchy (if necessary) and server certificate
#
# This mimics the CA structure that DevStack sets up when ``tls_proxy`` is enabled
# but in the current directory unless ``DATA_DIR`` is set

ENABLE_TLS=True
DATA_DIR=${DATA_DIR:-`pwd`/ca-data}

ROOT_CA_DIR=$DATA_DIR/root
INT_CA_DIR=$DATA_DIR/int

# Import common functions
source $TOP_DIR/functions

# Import TLS functions
source lib/tls

function usage {
    echo "$0 - Create CA and/or certs"
    echo ""
    echo "Usage: $0 commonName [orgUnit]"
    exit 1
}

CN=$1
if [ -z "$CN" ]]; then
    usage
fi
ORG_UNIT_NAME=${2:-$ORG_UNIT_NAME}

# Useful on OS/X
if [[ `uname -s` == 'Darwin' && -d /usr/local/Cellar/openssl ]]; then
    # set up for brew-installed modern OpenSSL
    OPENSSL_CONF=/usr/local/etc/openssl/openssl.cnf
    OPENSSL=/usr/local/Cellar/openssl/*/bin/openssl
fi

DEVSTACK_CERT_NAME=$CN
DEVSTACK_HOSTNAME=$CN
DEVSTACK_CERT=$DATA_DIR/$DEVSTACK_CERT_NAME.pem

# Make sure the CA is set up
configure_CA
fix_system_ca_bundle_path
init_CA

# Create the server cert
make_cert $INT_CA_DIR $DEVSTACK_CERT_NAME $DEVSTACK_HOSTNAME

# Create a cert bundle
cat $INT_CA_DIR/private/$DEVSTACK_CERT_NAME.key $INT_CA_DIR/$DEVSTACK_CERT_NAME.crt $INT_CA_DIR/cacert.pem >$DEVSTACK_CERT

