Table des matières

OpenSSL

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

Création de certificat

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érification des certificats

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

Debug d'une connexion

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

Conversions

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