convertir des certificats


À partir d'un format PEM

visualiser le contenu d'un PEM

Un PEM est un fichier texte contenant 1 ou plusieurs certificats concaténés. Pour les repérer, chaque certificat commence par une ligne de la forme -----BEGIN CERTIFICATE----- et se termine par la ligne -----END CERTIFICATE-----. Prenez votre éditeur de texte préféré (éditeur simple comme Notepad, pas quelque chose qui formate le texte tout seul comme Word), et faites des copier-coller de chaque certificat dans autant de fichiers que vous nommerez certificateXX.crt.

À partir d'un format CRT (PEM)

visualiser le contenu d'un CRT

openssl x509 -noout -text -in certificate.crt

convertir vers un format DER

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

convertir vers un format PKCS#7 (P7B)

openssl crl2pkcs7 -nocrl -certfile certificate.crt -out certificate.p7b [-certfile CACert.crt]

On peut mettre plusieurs certificats dans un seul conteneur PKCS#7, d’où l’argument facultatif entre crochets en fin de ligne.

convertir vers un format PKCS#12 (PFX / P12)

openssl pkcs12 -export -out certificate.pfx -name friendlyName -inkey privateKey.key -in certificate.crt [-certfile CACert.crt]

On peut rajouter le (ou les) certificat(s) de la chaîne de certification, dans le PKCS#12, d’où l’argument facultatif entre crochets en fin de ligne.

Le fichier PKCS#12 est protégé par un mot de passe, qui sera demandé interactivement lors de l’exécution de la commande ci-dessus.

À partir d'un format DER

visualiser le contenu d'un DER

openssl x509 -in certificate.der -noout -text -inform der

convertir vers un format PEM

openssl x509 -in certificate.der -out certificate.crt -inform der

À partir d'un format PKCS#7 (P7B)

visualiser le contenu d'un PKCS#7

Nota : le PKCS#7 peut être encodé au format PEM (par défaut) ou au format DER. Dans le cas d’un format DER, rajouter à toutes commandes ci-dessous l’option -inform DER.

openssl pkcs7 -in certificate.p7b -print_certs -noout -text

convertir un PKCS#7-PEM en PKCS#7-DER

openssl crl2pkcs7 -in certificate-pem.p7b -out certificate-der.p7b -nocrl -outform der

convertir un PKCS#7-DER en PKCS#7-PEM

openssl crl2pkcs7 -in certificate-der.p7b -out certificate-pem.p7b -nocrl -inform der -outform pem

convertir vers un format PEM

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.pem

Dans le cas où le fichier PKCS#7 contenait plusieurs certificats, alors le fichier PEM résultant contiendra aussi tous ces certificats.

À partir d'un format PKCS#12 (PFX / P12)

visualiser le contenu d'un PKCS#12

openssl pkcs12 -in certificate.pfx -nokeys -text -info

Cette commande n’affiche que des informations parcellaires sur les certificats (uniquement leur DN). Pour avoir davantage d’informations, il faut convertir le PKCS#12 dans un autre format puis examiner le résultat à l’aide des commandes ci-dessus.

convertir vers un format PEM

openssl pkcs12 -in certificate.pfx -out certificate.pem -nodes

Attention ! Cette commande génère un PEM qui contient tous les certificats du PKCS#12 , et avec la clef privée ! Pensez à protéger ce fichier.

Les clefs privées

visualiser le contenu d'une clef privée

openssl rsa -in certificate.key -noout -text

Cette commande permet de consulter les détails d’une clef privée. C’est intéressant pour vérifier qu’on est capables de la lire, mais les informations restituées ne seront pas parlantes sauf à un expert en cryptographie 🙂

protéger une clef privée via chiffrement

openssl rsa -in certificate-clear.key -out certificate-ciphered.key -aes256

Cette commande chiffre la clef privée au moyen de l’algorithme « AES 256 » (argument de la ligne de commande), et demande (de manière interactive) un mot de passe qui sera réutilisé pour déchiffrer la clef. Même si d’autres algorithmes sont utilisables : -aes128, -aes192, -des, -des3…, il reste préférable d’utiliser le « AES 256 ».

supprimer la protection d'une clef privée

openssl rsa -in certificate-ciphered.key -out certificate-clear.key

Cette commande permet de stocker la clef privée en clair, de manière non chiffrée.

pourquoi chiffrer une clef privée ?

Dans le cas d’une clef privée utilisée par un être humain pour des opérations manuelles (déverrouiller sa station de travail, chiffrer un mail…), il est fondamental de protéger sa clef en la chiffrant.

Dans le cas d’une clef privée utilisée par un logiciel (CFT, Apache…), l’utilité est nulle, car même si la clef privée est chiffrée, le mot de passe de déchiffrement est forcément inscrit en clair dans la configuration du logiciel qui utilise cette clef (Apache, CFT…).

Pour rappel, d'autres articles intimement liés


Laissez un commentaire

Votre adresse e-mail ne sera pas publiée.