Create a self-signed https certificate with a script
One of the things I always have to Google is how to create a self-signed cert for development. It’s hard to remember because it’s a bunch of gibberish commands in a row that I only use every so often.
So, here’s a script that does all the legwork. This is completely non-interactive, at the cost of not filling in any location or organization information (because of that yes ""
). The result is a PEM-formatted .key
and .crt
file without passcode (which you can combine into a single .pem
for a server if desired, especially if you don’t care about distributing the public key separately).
#!/bin/sh
BASENAME=${1:-server}
openssl genrsa -des3 -passout pass:x -out $BASENAME.key.passcode.tmp 2048
openssl rsa -passin pass:x -in $BASENAME.key.passcode.tmp -out $BASENAME.key
yes "" | openssl req -new -key $BASENAME.key -out $BASENAME.csr.tmp
openssl x509 -req -sha256 -days 365 -in $BASENAME.csr.tmp -signkey $BASENAME.key -out $BASENAME.crt
rm $BASENAME.key.passcode.tmp
rm $BASENAME.csr.tmp