49 lines
1.3 KiB
Bash
Executable file
49 lines
1.3 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
source bin/helper.sh
|
|
|
|
WORKDIR=$(dirname "$0")
|
|
LOCAL_DOMAIN=$1
|
|
|
|
CA_KEY=$WORKDIR/ca-key.pem
|
|
CA_CRT=$WORKDIR/ca-cert.pem
|
|
|
|
SRV_KEY=$WORKDIR/server-key.pem
|
|
SRV_REQ=$WORKDIR/server-req.csr
|
|
SRV_CRT=$WORKDIR/server-cert.pem
|
|
|
|
CLI_KEY=$WORKDIR/client-key.pem
|
|
CLI_REQ=$WORKDIR/client-req.csr
|
|
CLI_CRT=$WORKDIR/client-cert.pem
|
|
|
|
SUBJ="/O=TrueCloudLab"
|
|
|
|
if [[ ! -f $CA_KEY || ! -f $CA_CRT ]]; then
|
|
openssl req -newkey rsa:4096 -x509 -days 365 -nodes -keyout $CA_KEY -out $CA_CRT -subj $SUBJ 2>&1 ||
|
|
die "CA certificate was not created"
|
|
fi
|
|
|
|
if [[ ! -f $SRV_KEY || ! -f $SRV_CRT ]]; then
|
|
openssl req -newkey rsa:4096 -nodes -keyout $SRV_KEY -out $SRV_REQ -subj $SUBJ 2>&1 ||
|
|
die "Server certificate was not created"
|
|
|
|
openssl x509 -req -days 365 -set_serial 01 -in $SRV_REQ -out $SRV_CRT -CA $CA_CRT -CAkey $CA_KEY \
|
|
-extensions san -extfile <(printf "[san]\nsubjectAltName=DNS:nats.$LOCAL_DOMAIN") 2>&1 || {
|
|
rm $SRV_REQ
|
|
die "Server certificate was not signed by CA"
|
|
}
|
|
|
|
rm $SRV_REQ
|
|
fi
|
|
|
|
if [[ ! -f $CLI_KEY || ! -f $CLI_CRT ]]; then
|
|
openssl req -newkey rsa:4096 -nodes -keyout $CLI_KEY -out $CLI_REQ -subj $SUBJ 2>&1 ||
|
|
die "Client certificate was not created"
|
|
|
|
openssl x509 -req -days 365 -set_serial 01 -in $CLI_REQ -out $CLI_CRT -CA $CA_CRT -CAkey $CA_KEY 2>&1 || {
|
|
rm $CLI_REQ
|
|
die "Client certificate was not signed by CA"
|
|
}
|
|
|
|
rm $CLI_REQ
|
|
fi
|