#!/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