Exporter des certificats et une clé privée à partir d'un fichier PKCS # 12 avec OpenSSL

Comment extraire les certificats et la clé privée d'un fichier PKCS # 12 (également appelé PKCS12, PFX, .p12 et .pfx) avec OpenSSL.

Remarque : Cet article ne s'applique pas aux certificats de signature de code et de signature de documents SSL.com. Les clés privées de ces types de certificats ne peuvent pas être exportées et ne peuvent pas être générées sous forme de fichiers .pfx. Les certificats de signature de code et de signature de documents SSL.com ainsi que leurs clés privées ne peuvent être générés et stockés que dans le Environnement de signature cloud eSignerun Yubikey appareil ou un appareil pris en charge Cloud HSM.

Ce guide vous guidera à travers l'extraction des informations d'un fichier PKCS # 12 avec OpenSSL. PKCS # 12 (également connu sous le nom de PKCS12 ou PFX) est un format binaire pour stocker une chaîne de certificats et une clé privée dans un seul fichier cryptable. Les fichiers PKCS # 12 sont couramment utilisés pour importer et exporter des certificats et des clés privées sur les ordinateurs Windows et macOS, et ont généralement les extensions de nom de fichier .p12 or .pfx.

Pour plus d'informations pratiques et les dernières nouvelles sur la cybersécurité, inscrivez-vous à la newsletter de SSL.com ici :

Qu'est-ce que OpenSSL?
OpenSSL est une boîte à outils de ligne de commande open source très utile pour travailler avec X.509 certificats, demandes de signature de certificat (CSRs) et les clés cryptographiques. Si vous utilisez une variante UNIX comme Linux ou macOS, OpenSSL est probablement déjà installé sur votre ordinateur. Si vous souhaitez utiliser OpenSSL sous Windows, vous pouvez activer Sous-système Linux de Windows 10 ou installez Cygwin. Vous pouvez également facilement engendrent un fichier PKCS # 12 avec openSSL.

SSL.com fournit une grande variété de SSL /TLS certificats de serveur pour les sites Web HTTPS.

COMPARER SSL /TLS CERTIFICATS

Vidéo

https://www.youtube.com/watch?v=S_imVMFOdhU

Dans tous les exemples ci-dessous, remplacez les noms des fichiers avec lesquels vous travaillez réellement INFILE.p12, OUTFILE.crtet OUTFILE.key.

Afficher les informations PKCS # 12 à l'écran

Pour vider toutes les informations d'un fichier PKCS # 12 sur l'écran de Format PEM, utilisez cette commande:

openssl pkcs12 -info -in INFILE.p12 -nodes

Vous serez alors invité à entrer le mot de passe du fichier PKCS # 12:

Entrez le mot de passe d'importation:

Tapez le mot de passe entré lors de la création du fichier PKCS # 12 et appuyez sur enter. OpenSSL affichera tous les certificats et clés privées du fichier à l'écran:

Attributs du sac localKeyID: AC 3E 77 9A 99 62 84 3D 77 CB 44 0D F9 78 57 7C 08 28 05 97 subject = / CN = Aaron Russell/emailAddress=*********@gmail.com issuer = / C = US / ST = Texas / L = Houston / O = SSL Corp / CN = SSL.com certificat client intermédiaire CA RSA R1 ----- ----- BEGIN CERTIFICATE MIIF1DCCA7ygAwIBAgIQcOrAJCMayJsZBKJsyz / aQDANBgkqhkiG9w0BAQsFADB + MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0b24x ETAPBgNVBAoMCFNTTCBDb3JwMTowOAYDVQQDDDFTU0wuY29tIENsaWVudCBDZXJ0 ... bwK6ABAZUq6QcvhD0LYsXya + ncDCR6wxb9E0DWd4ATQMzxGTu / yE3kT + 9Ef6IY + n armh3HZUfan2Hb64YD0tjLMca / PC + sKAZu28gB / 3HQRHIFugvh6RO3b bioorl0jUg 1Ml2lUF ---- CLÉ PRIVÉ- END-

Crypter la clé privée

Si vous souhaitez crypter la clé privée et la protéger avec un mot de passe avant la sortie, omettez simplement -nodes drapeau de la commande:

openssl pkcs12 -info -in INFILE.p12

Dans ce cas, vous serez invité à entrer et à vérifier un nouveau mot de passe une fois que OpenSSL aura généré des certificats, et la clé privée sera cryptée (notez que le texte de la clé commence par -----BEGIN ENCRYPTED PRIVATE KEY-----):

Entrez phrase de passe PEM: Vérification - Entrez phrase de passe PEM: ----- BEGIN CRYPTE CLE PRIVEE ----- MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIGwhJIMXRiLQCAggA MBQGCCqGSIb3DQMHBAiXdeymTYuedgSCBMjwGg78PsqiNJLfpDFbMxL98u3tK9Cs ... SGVCCBj5vBpSbBXAGbOv74h4satKmAMgGc8SgU06geS9gFgt / wLwehMJ / 4S H4BSmex / 2tYzZrDBJkfH9JpggubYRTgwfAGY2BkX03dK2sqfu + QVTVTKMj2VI0sKcFfLZ BDW = ----- END CRYPTEES CLÉ PRIVÉE-----

Extraire uniquement les certificats ou la clé privée

Si vous souhaitez uniquement sortir la clé privée, ajoutez -nocerts à la commande:

openssl pkcs12 -info -in INFILE.p12 -nodes -nocerts

Si vous n'avez besoin que des certificats, utilisez -nokeys (et comme nous ne sommes pas concernés par la clé privée, nous pouvons également omettre en toute sécurité -nodes):

openssl pkcs12 -info -in INFILE.p12 -nokeys

Enregistrer des certificats et des clés privées dans des fichiers

Vous pouvez exporter les certificats et la clé privée d'un fichier PKCS # 12 et les enregistrer au format PEM dans un nouveau fichier en spécifiant un nom de fichier de sortie:

openssl pkcs12 -in INFILE.p12 -out OUTFILE.crt -nodes

Encore une fois, vous serez invité à entrer le mot de passe du fichier PKCS # 12. Comme précédemment, vous pouvez crypter la clé privée en supprimant le -nodes drapeau de la commande et / ou ajouter -nocerts or -nokeys pour sortir uniquement la clé privée ou les certificats. Ainsi, pour générer un fichier de clé privée, nous pouvons utiliser cette commande:

openssl pkcs12 -in INFILE.p12 -out OUTFILE.key -nodes -nocerts

Et pour créer un fichier contenant uniquement les certificats, utilisez ceci:

openssl pkcs12 -in INFILE.p12 -out OUTFILE.crt -nokeys

Convertir la clé privée au format PKCS # 1

Les exemples ci-dessus affichent tous la clé privée par défaut d'OpenSSL PKCS # 8 format. Si vous savez que vous avez besoin PKCS # 1 à la place, vous pouvez diriger la sortie de l'utilitaire PKCS # 12 d'OpenSSL vers son utilitaire RSA ou EC selon le type de clé. Les deux commandes ci-dessous afficheront un fichier clé au format PKCS # 1:

RSA

openssl pkcs12 -in INFILE.p12 -nodes -nocerts | openssl rsa -out OUTFILE.key

ECDSA

openssl pkcs12 -in INFILE.p12 -nodes -nocerts | openssl ec -out OUTFILE.key

Remarque : Vous pouvez faire la différence entre les fichiers de clé privée PKCS # 8 et PKCS # 1 en regardant la première ligne de texte. Les fichiers PKCS # 1 spécifieront l'algorithme:
-----BEGIN RSA PRIVATE KEY-----

Les fichiers PKCS # 8 ne montrent pas l'algorithme et peuvent également être chiffrés:
-----BEGIN PRIVATE KEY-----
or
-----BEGIN ENCRYPTED PRIVATE KEY-----


Merci d'avoir choisi SSL.com! Si vous avez des questions, veuillez nous contacter par e-mail à Support@SSL.com, appel 1-877-SSL-SECUREou cliquez simplement sur le lien de discussion en bas à droite de cette page.

Restez informé et en sécurité

SSL.com est un leader mondial de la cybersécurité, PKI et les certificats numériques. Inscrivez-vous pour recevoir les dernières nouvelles de l'industrie, des conseils et des annonces de produits de SSL.com.

Nous aimerions recevoir vos commentaires

Répondez à notre enquête et faites-nous part de votre avis sur votre récent achat.