blob: 6f7815403f00c7fd481f39865d8dba501a82ebf9 [file] [log] [blame]
#!/usr/bin/env bash
CONFIG_DIR="@PROJECT_BINARY_DIR@/examples/https"
# Create new CA
openssl req -new -x509 -days 9999 \
-config "$CONFIG_DIR/etc/ca.cnf" \
-keyout "$CONFIG_DIR/ca-key.pem" \
-out "$CONFIG_DIR/ca-crt.pem"
# Generate private key for server
openssl genrsa -out "$CONFIG_DIR/server-key.pem" 4096
# Generate cert signing request
openssl req -new \
-config "$CONFIG_DIR/etc/server.cnf" \
-key "$CONFIG_DIR/server-key.pem" \
-out "$CONFIG_DIR/server-csr.pem"
# Sign the request
openssl x509 -req \
-extfile "$CONFIG_DIR/etc/server.cnf" \
-days 999 \
-passin "pass:password" \
-in "$CONFIG_DIR/server-csr.pem" \
-CA "$CONFIG_DIR/ca-crt.pem" \
-CAkey "$CONFIG_DIR/ca-key.pem" \
-CAcreateserial \
-out "$CONFIG_DIR/server-crt.pem"
# Generate a few client certs
openssl genrsa -out "$CONFIG_DIR/client1-key.pem" 4096
openssl genrsa -out "$CONFIG_DIR/client2-key.pem" 4096
# create two cert sign requests
openssl req -new -config "$CONFIG_DIR/etc/client1.cnf" -key $CONFIG_DIR/client1-key.pem -out $CONFIG_DIR/client1-csr.pem
openssl req -new -config $CONFIG_DIR/etc/client2.cnf -key $CONFIG_DIR/client2-key.pem -out $CONFIG_DIR/client2-csr.pem
# sign the above client certs
openssl x509 -req \
-extfile $CONFIG_DIR/etc/client1.cnf \
-days 999 \
-passin "pass:password" \
-in $CONFIG_DIR/client1-csr.pem \
-CA $CONFIG_DIR/ca-crt.pem \
-CAkey $CONFIG_DIR/ca-key.pem \
-CAcreateserial \
-out $CONFIG_DIR/client1-crt.pem
openssl x509 -req \
-extfile $CONFIG_DIR/etc/client2.cnf \
-days 999 \
-passin "pass:password" \
-in $CONFIG_DIR/client2-csr.pem \
-CA $CONFIG_DIR/ca-crt.pem \
-CAkey $CONFIG_DIR/ca-key.pem \
-CAcreateserial \
-out $CONFIG_DIR/client2-crt.pem