OpenSSL - Commandes utiles
De PedroWiki
Introduction
Cet article liste les commandes openssl les plus couramment utilisées. Il y a déjà des 100aines de pages sur internet, l'idée de cet article est de capitaliser dans le temps à titre personnel.
Liens utiles
- Page sur SSLShopper
- Génération de CSR (TBS)
- Wikipedia - Certifs autosignés
- Générer un certificat auto signé
Commandes les plus utiles
Tester un port SSL
openssl s_client -connect <host>:<port>
Générer un CSR
openssl req -sha256 -nodes -newkey rsa:2048 -keyout www.monsite.com.key -out www.monsite.com.csr
A partir d'un fichier de détails:
openssl req -nodes -newkey rsa:2048 -sha256 -days 3650 -keyout monsite.key -out monsite.csr -config <(cat csr_details.txt)
Format du fichier de détails:
[req] default_bits = 2048 prompt = no default_md = sha256 req_extensions = req_ext distinguished_name = dn [ dn ] C=FR ST=<Une région> L=<Une ville> O=<Une organisation> OU=<Une OU> emailAddress=<Un email de contact> CN = <le CN souhaité, i.e. le nom à couvrir> [ req_ext ] subjectAltName = @alt_names [ alt_names ] DNS.1 = <alt_name_1> DNS.2 = <alt_name_2> IP.1 = <IP>Vérifier le contenu d'un certificat SSL au format PEM
openssl x509 -in <nom_fichier_certif> -text -nooutConvertir DER (.crt .cer .der) au format PEM
openssl x509 -outform der -in certificate.cer -out certificate.der openssl x509 -inform der -in certificate.der -out certificate.pemSupprimer la passphrase d'une clé privée
openssl rsa -in /path/to/ssl/032019/withPassPhrase.key -out /path/to/ssl/withoutPassPhrase.key Puis en interactif, renseigner la passphrase. Vous pouvez ensuite utiliser la clé sans passphrase pour vos configurations.Vérifier la correspondance CSR/clé privée/clé publique
Obtenir le hash md5 du modulus de chaque fichier et les comparer (ils doivent tous être identiques): openssl x509 -in <clépublique> -noout -modulus | openssl md5 openssl rsa -in <cléprivée> -noout -modulus | openssl md5 openssl req -in <csr> -noout -modulus | openssl md5Vérifier le bon ordre des clés publiques dans une chaîne
Logique: * partir de la clé publique de son certificat. * avoir 1 fichier par clé publique faisant partie de la chaîne. * si on considère que la clé publique est tout en haut, il faut en déterminer l'Issuer, et la clé à l'étage du dessous doit avoir un Subject strictement identique. openssl x509 -in <clépublique> -text -noout | grep Issuer Puis openssl x509 -in <unedesclésdelachaine> -text -noout | grep Subject La clé de la chaine ayant un Subject égal à l'issuer de la clé précédente vient à la suite. Ensuite concaténer toutes ces clés dans un seul et même fichier: cat <clépublique> > fullchain.pem cat <cléAC1> >> fullchain.pem ... cat <cléACn> >> fullchain.pem cat <cléRootCA> >> fullchain.pem Vérifier qu'il n'y ait pas de mélange des BEGIN et END CERTIFICATE (ex: manque de retour à la ligne dans les fichiers).