====== 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 Afficher les données d'une certificat. openssl s_client -showcerts -connect exemple.com:443 Afficher les informations du sujet et dates de validité. openssl s_client -showcerts -connect exemple.com:443 ===== 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