Files
Wiki/OpenSSL.md
2020-03-17 22:28:09 +01:00

1.6 KiB

OpenSSL

For my SSL keys and certificates I always use:

  • .crt for the certificates,
  • .key for the keys and
  • .csr for the CSRs While technically not correct I think this is more verbose.

General commands

  • Generate a new private key and Certificate Signing Request
openssl req -out signing_request.csr -new -newkey rsa:2048 -nodes -keyout private_key.key
  • Generate a certificate signing request (CSR) for an existing private key
openssl req -out signing_request.csr -key private_key.key -new
  • Generate a certificate signing request based on an existing certificate
openssl x509 -x509toreq -in certificate.crt -out signing_request.csr -signkey private_key.key
  • Remove a passphrase from a private key
openssl rsa -in old_private_key.key -out new_private_key.key

Checking commands

  • Check a Certificate Signing Request (CSR)
openssl req -text -noout -verify -in signing_request.csr
  • Check a private key
openssl rsa -in private_key.key -check
  • Check a certificate
openssl x509 -in certificate.crt -text -noout
  • Check a PKCS#12 file (.pfx or .p12)
openssl pkcs12 -info -in keystore.p12

Debugging commands

  • Compare md5 hashes of certificate, key and CSR
openssl x509 -noout -modulus -in certificate.crt | openssl md5
openssl rsa -noout -modulus -in privateKey.key | openssl md5
openssl req -noout -modulus -in CSR.csr | openssl md5
  • Check an SSL connection. All the certificates (including Intermediates) should be displayed
openssl s_client -connect www.paypal.com:443