Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save 0xradical/6174d7e0b864d86edd8e804c6f5e82fd to your computer and use it in GitHub Desktop.
Save 0xradical/6174d7e0b864d86edd8e804c6f5e82fd to your computer and use it in GitHub Desktop.
Self-Signed Wildcard certificate with SAN using openssl / SSL

Copy the default template of openssl.cnf to a writable location.

cp /System/Library/OpenSSL/openssl.cnf src

Uncomment the req_extensions = v3_req

req_extensions = v3_req # The extensions to add to a certificate request

Add subjectAltName to v3_req section

[ v3_req ]
 
# Extensions to add to a certificate request
 
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names

Add the main hostname and the wildcard to a new [alt_names] section

[alt_names]
DNS.1 = yourdomain.com
DNS.2 = *.yourdomain.com

For example, for octodmeo.com

[alt_names]
DNS.1 = octodemo.com
DNS.2 = *.octodemo.com

Run the following and fill all the essential information, especially the CN (Common Name):

openssl genrsa -out hostname.key 2048
openssl rsa -in hostname.key -out hostname-key.pem
openssl req -new -key hostname-key.pem -out hostname-request.csr
openssl x509 -req -extensions v3_req -days 365 -in hostname-request.csr -signkey hostname-key.key -out hostname-cert.pem -extfile <path to openssl.conf>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment