From cc596dd8251ebfc0dab7344da1a501f24dc23a8c Mon Sep 17 00:00:00 2001 From: Instrumental Date: Thu, 23 Aug 2018 09:52:14 -0500 Subject: [PATCH] Create CA Bootstrap.sh Issue-ID: AAF-419 Change-Id: I3d29a27be7fd5e6a4991c872dab0537607079f1f Signed-off-by: Instrumental --- conf/CA/bootstrap.sh | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 conf/CA/bootstrap.sh diff --git a/conf/CA/bootstrap.sh b/conf/CA/bootstrap.sh new file mode 100644 index 00000000..ea7a23ec --- /dev/null +++ b/conf/CA/bootstrap.sh @@ -0,0 +1,88 @@ +# +# Streamlined AAF Bootstrap initial Cert +# Removed Variables so it can be run for AutoDeployments +# +echo "Bootstrap AAF Certificate" +NAME=aaf.bootstrap +FQDN=$(uname -n) +FQI=aaf@aaf.osaaf.org +SUBJECT="/CN=$FQDN/OU=$FQI`cat subject.aaf`" +SIGNER_P12=$1 +SIGNER_KEY=/tmp/aaf_signer.key +SIGNER_CRT=/tmp/aaf_signer.crt +PASSPHRASE=$2 +if [ "PASSPHRASE" = "" ]; then + PASSPHRASE="something easy" +fi +BOOTSTRAP_SAN=/tmp/$NAME.san +BOOTSTRAP_KEY=/tmp/$NAME.key +BOOTSTRAP_CSR=/tmp/$NAME.csr +BOOTSTRAP_CRT=/tmp/$NAME.crt +BOOTSTRAP_P12=$NAME.p12 + + +# If Signer doesn't exist, create Self-Signed CA +if [ ! -e "$SIGNER_P12" ]; then + # Creating Signer CA + openssl req -config openssl.conf -x509 -sha256 -extensions v3_ca \ + -newkey rsa:4096 -nodes -subj /CN="RootCA$(cat subject.aaf)" \ + -keyout $SIGNER_KEY -out $SIGNER_CRT -days 365 + + # Move to P12 (Signer) + openssl pkcs12 -name RootCA -export -in $SIGNER_CRT -inkey $SIGNER_KEY -out $SIGNER_P12 -passin stdin -passout stdin << EOF +$PASSPHRASE +$PASSPHRASE +$PASSPHRASE +EOF + +else + # Get Private key from P12 + openssl pkcs12 -in $SIGNER_P12 -nocerts -nodes -passin stdin -passout stdin -out $SIGNER_KEY << EOF +$PASSPHRASE +$PASSPHRASE +EOF + + # Get Cert from P12 + openssl pkcs12 -in $SIGNER_P12 -clcerts -nokeys -passin stdin -out $SIGNER_CRT << EOF +$PASSPHRASE +EOF + +fi + +# SANS +cp san.conf $BOOTSTRAP_SAN +NUM=1 +for D in $FQDN aaf.osaaf.org service.aaf.osaaf.org locate.aaf.osaaf.org oauth.aaf.osaaf.org gui.aaf.osaaf.org cm.aaf.osaaf.org hello.aaf.osaaf.org; do + echo "DNS.$NUM = $D" >> $BOOTSTRAP_SAN + NUM=$((NUM+1)) +done + +# Create CSR +openssl req -new -newkey rsa:2048 -sha256 -nodes -keyout $BOOTSTRAP_KEY \ + -out $BOOTSTRAP_CSR -outform PEM -subj "$SUBJECT" + #-passout stdin << EOF +#$PASSPHRASE +#EOF + +ls -l BOOTSTRAP_CSR $BOOTSTRAP_CSR +# Sign it +openssl ca -batch -config openssl.conf -extensions server_cert -out $BOOTSTRAP_CRT \ + -cert $SIGNER_CRT -keyfile $SIGNER_KEY \ + -policy policy_loose \ + -days 90 \ + -extfile $BOOTSTRAP_SAN \ + -infiles $BOOTSTRAP_CSR + +# Make a P12 +# Add THIS Intermediate CA into chain +cat $SIGNER_CRT >> $BOOTSTRAP_CRT + +# Note: Openssl will pickup and load all Certs in the Chain file +openssl pkcs12 -name $FQI -export -in $BOOTSTRAP_CRT -inkey $BOOTSTRAP_KEY -out $BOOTSTRAP_P12 -passin stdin -passout stdin << EOF +$PASSPHRASE +$PASSPHRASE +$PASSPHRASE +EOF + +# Cleanup +rm -f $BOOTSTRAP_SAN $BOOTSTRAP_KEY $BOOTSTRAP_CSR $BOOTSTRAP_CRT $SIGNER_KEY $SIGNER_CRT -- 2.16.6