-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Expand file tree
/
Copy pathmake_cert.sh
More file actions
executable file
·56 lines (43 loc) · 1.26 KB
/
make_cert.sh
File metadata and controls
executable file
·56 lines (43 loc) · 1.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/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