OpenSSL

OpenSSL permet la manipulation des certificats. Voici les commandes les plus communes.

Générer une nouvelle demande de certification et faire une nouvelle clé privé.

openssl req -out CSR.csr -new -newkey rsa:2048 -sha256 -nodes -keyout privateKey.key

Créer un nouveau certificat autosigné.

openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt

Générer une demande de certificat pour une clé existante.

openssl req -out CSR.csr -key privateKey.key -sha256 -new

Générer une nouvelle demande de certification basé sur l'ancienne.

openssl x509 -x509toreq -in certificate.crt -out CSR.csr -signkey privateKey.key

Retirer le mot de passe d'une clé.

openssl rsa -in privateKey.pem -out newPrivateKey.pem

Vérifier une requette de certification.

openssl req -text -noout -verify -in CSR.csr

Vérifier une clé privé.

openssl rsa -in privateKey.key -check

Vérifier un certificat.

openssl x509 -in certificate.crt -text -noout

Vérifier un fichier PKCS#12

openssl pkcs12 -info -in keyStore.p12

Vérifier qu'une clé privé et un certificat vont ensembles. Il faut vérifier que les deux commandes ci-dessous retourne le même modulus.

openssl rsa -in mykey.pem -noout -modulus
openssl x509 -in mycertificate.pem -noout -modulus

Pour afficher les certificats d'une connexion.

openssl s_client -showcerts -connect exemple.com:443 </dev/null

Afficher les données d'une certificat.

openssl s_client -showcerts -connect exemple.com:443 </dev/null | openssl x509 -noout -text

Afficher les informations du sujet et dates de validité.

openssl s_client -showcerts -connect exemple.com:443 </dev/null | openssl x509 -noout -subject -dates

Convertir un fichier DER (.crt .cer .der) en PEM

openssl x509 -inform der -in certificate.cer -out certificate.pem

Convertir un fichier PEM en DER

openssl x509 -outform der -in certificate.pem -out certificate.der

Convertir un fichier PKCS#12 (.pfx .p12) contenant une clé et un certificat en PEM

openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes
Vous pouvez ajouter -nocerts pour exporter uniquement la clé privé ou ajouter -nokeys pour exporter uniquement le certificat.

Convertir un fichier PEM et une clé en un fichier PKCS#12 (.pfx .p12)

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt