Skip to content

Openssl ​

Generate a self-signed SSL certificate. ​

Create a 2048-bit private key ​

sh
openssl genrsa -out server.key 2048

Create the Certificate Signing Request (CSR) ​

sh
openssl req -new -key server.key -out server.csr

Sign a certificate using a private key and CSR ​

sh
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Show certificate infos ​

Show certificate information for a certificate signing request ​

sh
openssl req -text -noout -in server.csr

Show certificate information for generated certificate ​

sh
openssl x509 -text -noout -in server.crt

Get the sha256 fingerprint of a certificate ​

sh
openssl x509 -in server.crt -noout -sha256 -fingerprint

View certificate expiration ​

sh
echo | openssl s_client -connect <hostname>443 2> /dev/null | \
  awk '/-----BEGIN/,/END CERTIFICATE-----/' | \
  openssl x509 -noout -enddate

Generate Diffie-Hellman parameters ​

sh
openssl dhparam -outform PEM -out dhparams.pem 2048

Test an https server ​

sh
openssl s_client -connect 10.240.2.130:433

Password ​

Generate strong secret with openssl ​

sh
openssl rand -base64 36

OR

sh
openssl rand -hex 36

High-quality options for openssl for symmetric (secret key) encryption ​

This is what knowledgable people consider a good set of options for symmetric encryption with openssl to give you a high-quality result. Also, always remember that the result is only as good as the password you use. You must use a strong password otherwise encryption is meaningless.

Encrypt ​

sh
openssl enc -e -aes-256-cbc \
  -salt \
  -pbkdf2 \
  -iter 1000000 \
  -md sha512 \
  -base64 \
  -in somefile \
  -out somefile.enc

Decrypt ​

sh
openssl enc -d -aes-256-cbc \
  -salt \
  -pbkdf2 \
  -iter 1000000 \
  -md sha512 \
  -base64 \
  -in somefile.enc \
  -out somefile