SSL - TLS
This page gives insight on how to manage and check HTTPS certificates for SSL/TLS connections.
Self signed certificate
This is a one-liner to generate a self signed certificate. Answer the questions and you are done:
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout private.key -out certificate.crt
And if you don’t want to manually answer the questions for creating the certificate, add the -subj option:
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout private.key -out certificate.crt -subj "/C=CH/ST=FR/L=Local/O=Home/CN=localhost"
Certificate chain
Web servers must be sending the full certificate chain if we want the clients to be able to validate the certificates.
The openssl tool can be used to verify this chain:
openssl s_client -showcerts -connect google.com:443
This will show all details about the certificates and the chain.
To print only a summary of the chain, this command will give the required information:
openssl s_client -showcerts -connect google.com:443 2>/dev/null | grep "[s]:"
Inspect Certificate File
Check a certificate file (individual certificate .crt or fullchain .pem):
openssl x509 -in certificate.crt -text -noout
Check a private key file:
openssl rsa -in privkey.pem -check