Skip to content

Instantly share code, notes, and snippets.

@javigs82
Last active May 28, 2021 13:46
Show Gist options
  • Save javigs82/b2f7ed5f21e775be8ab06e07ab18af12 to your computer and use it in GitHub Desktop.
Save javigs82/b2f7ed5f21e775be8ab06e07ab18af12 to your computer and use it in GitHub Desktop.
Issue Cert with Custom CA
#!/usr/bin/env bash
set -e
ORGANIZATION="Javitos Ltd"
ROOT_CA_NAME="root"
ROOT_CA_UNIT="IT"
ROOT_CA_EMAIL="[email protected]"
ROOT_CA_DAYS=3650
ISSUED_CERT_NAME="server"
ISSUED_CERT_UNIT="DevOps"
ISSUED_CERT_EMAIL="[email protected]"
ISSUED_CERT_CN="dbserver"
ISSUED_CERT_DAYS=365
# Generate CA
openssl genrsa -out $ROOT_CA_NAME.key 2048
openssl req -new -x509 -days $ROOT_CA_DAYS -key $ROOT_CA_NAME.key -sha256 -extensions v3_ca \
-subj "/C=ES/ST=Madrid/L=Madrid/O=$ORGANIZATION/OU=$ROOT_CA_UNIT/CN=root/emailAddress=$ROOT_CA_EMAIL" \
-out $ROOT_CA_NAME.crt
# Issue CERT
openssl genrsa -out $ISSUED_CERT_NAME.key 2048
openssl req -sha256 -new -key $ISSUED_CERT_NAME.key \
-subj "/C=ES/ST=Madrid/L=Madrid/O=$ORGANIZATION/OU=$ISSUED_CERT_UNIT/CN=$ISSUED_CERT_CN/emailAddress=$ISSUED_CERT_EMAIL" \
-out $ISSUED_CERT_NAME.csr
openssl x509 -sha256 -req -in $ISSUED_CERT_NAME.csr -CA $ROOT_CA_NAME.crt \
-CAkey $ROOT_CA_NAME.key -CAcreateserial -out $ISSUED_CERT_NAME.crt -days $ISSUED_CERT_DAYS
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment