Files
ziti/tests/pki/scripts/generate_CAs.sh
T
Andrew Martinez a570eae22f GH-18 PKi to lf
2019-12-18 13:26:51 -05:00

53 lines
1.4 KiB
Bash

#!/bin/sh
set -eE
echo ""
echo -e "\e[31mWarning! This will delete all existing *.pem files in this directory structure"
echo "and remove all CA control files! You will have to generate new certs if you"
echo "continue as any other certs signed by any previous CA will become invalid."
echo ""
echo -e "\e[0mPress any key to continue."
read wait
echo -e "\e[36mRemove previous CAs if they exist\e[0m"
rm -rf ca.external || true
rm -rf ca.internal || true
rm -rf ca.3rdparty || true
rm -rf ca.ecc || true
echo -e "\e[36mRemove previous key pairs if they exist\e[0m"
rm *.pem || true
create_ca_dir_structure() {
echo -e "\e[36mCreate base folders/config for: $1\e[0m"
mkdir -p $1/certs
mkdir -p $1/crl
mkdir -p $1/newcerts
mkdir -p $1/private
touch $1/index.txt
touch $1/index.txt.attr
echo 00 > $1/crlnumber
openssl rand -hex 16 > $1/serial
}
create_ca_key_pair() {
echo -e "\e[36mCreate e$1 private key\e[0m"
openssl ecparam -name secp384r1 -genkey -out $1/private/$1.key.pem
openssl ec -in $1/private/$1.key.pem -out $1/private/$1.key.pem -aes256 -passout pass:$2
echo -e "\e[36mCreate $1 certificate\e[0m"
openssl req -batch -config cnf/openssl.$1.cnf -key $1/private/$1.key.pem -new -x509 -days 7300 -sha256 -extensions v3_ca -out $1/certs/$1.cert.pem -passin pass:$2
}
create_ca() {
create_ca_dir_structure $1
create_ca_key_pair $1 $2
}
create_ca ca.external 1234
create_ca ca.internal 1234