Exporteer certificaten en privésleutel uit een PKCS # 12-bestand met OpenSSL

Opmerking: Dit artikel is niet van toepassing op SSL.com-certificaten voor codeondertekening en documentondertekening. De privésleutels van dit soort certificaten kunnen niet worden geëxporteerd en kunnen niet worden gegenereerd als .pfx-bestanden. SSL.com-certificaten voor codeondertekening en documentondertekening en hun privésleutels kunnen alleen worden gegenereerd en opgeslagen in de eSigner-cloudondertekeningsomgeving, een Yubikey apparaat of een ondersteund Cloud-HSM.

Deze handleiding helpt u bij het extraheren van informatie uit een PKCS # 12-bestand met OpenSSL. PKCS # 12 (ook bekend als PKCS12 of PFX) is een binair formaat voor het opslaan van een certificaatketen en privésleutel in een enkel, versleuteld bestand. PKCS # 12-bestanden worden vaak gebruikt om certificaten en privésleutels op Windows- en macOS-computers te importeren en exporteren, en hebben meestal de bestandsnaamextensies .p12 or .pfx.

Voor meer handige instructies en het laatste nieuws over cyberbeveiliging, kunt u zich hier aanmelden voor de nieuwsbrief van SSL.com:

Wat is OpenSSL?
OpenSSL is een zeer nuttige open-source opdrachtregel-toolkit om mee te werken X.509 certificaten, aanvragen voor certificaatondertekening (CSRs) en cryptografische sleutels. Als u een UNIX-variant zoals Linux of macOS gebruikt, is OpenSSL waarschijnlijk al op uw computer geïnstalleerd. Als u OpenSSL op Windows wilt gebruiken, kunt u Het Linux-subsysteem van Windows 10 of installeer Cygwin. Dat kan ook gemakkelijk en je merk te creëren een PKCS # 12-bestand met openSSL.

SSL.com biedt een breed scala aan SSL /TLS server certificaten voor HTTPS-websites.

VERGELIJK SSL /TLS CERTIFICATEN

Video

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

Vervang in alle onderstaande voorbeelden de namen van de bestanden waarmee u daadwerkelijk werkt INFILE.p12, OUTFILE.crt en OUTFILE.key.

Bekijk PKCS # 12-informatie op het scherm

Om alle informatie in een PKCS # 12-bestand naar het scherm te dumpen PEM-formaat, gebruik deze opdracht:

openssl pkcs12 -info -in INFILE.p12 -knooppunten

U wordt vervolgens gevraagd om het wachtwoord van het PKCS # 12-bestand:

Voer het importwachtwoord in:

Typ het wachtwoord dat u hebt ingevoerd bij het maken van het PKCS # 12-bestand en druk op enter. OpenSSL zal alle certificaten en privésleutels in het bestand naar het scherm sturen:

Bag Attributes 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 uitgever = / C = US / ST = Texas / L = Houston / O = SSL Corp / CN = SSL.com clientcertificaat Intermediate CA RSA R1 ----- BEGIN CERTIFICATE ----- MIIF1DCCA7ygAwIBAgIQcOrAJCMayJsZBKJsyz / aQDANBgkqhkiG9w0BAQsFADB + MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0b24x ETAPBgNVBAoMCFNTTCBDb3JwMTowOAYDVQQDDDFTU0wuY29tIENsaWVudCBDZXJ0 ... bwK6ABAZUq6QcvhD0LYsXya + ncDCR6wxb9E0DWd4ATQMzxGTu / yE3kT + 9Ef6IY + n armh3HZUfan2Hb64YD0tjLMca / PC + sKAZu28gB / 3HQRHIFugvh6RO3bIoorl0jUg 1MlHLu2- +++

Privésleutel versleutelen

Als u de privésleutel wilt coderen en deze met een wachtwoord wilt beveiligen voordat u deze uitvoert, laat u de -nodes vlag van de opdracht:

openssl pkcs12 -info -in INFILE.p12

In dit geval wordt u gevraagd om een ​​nieuw wachtwoord in te voeren en te verifiëren nadat OpenSSL alle certificaten heeft uitgevoerd, en de privésleutel wordt gecodeerd (merk op dat de tekst van de sleutel begint met -----BEGIN ENCRYPTED PRIVATE KEY-----):

Voer PEM pass phrase: Verifying - Voer PEM pass phrase: ----- BEGIN VERSLEUTELDE PRIVATE KEY ----- MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIGwhJIMXRiLQCAggA MBQGCCqGSIb3DQMHBAiXdeymTYuedgSCBMjwGg78PsqiNJLfpDFbMxL98u3tK9Cs ... SGVCCBj5vBpSbBXAGbOv74h4satKmAMgGc8SgU06geS9gFgt / wLwehMJ / H4BSmex 4S / 2tYzZrDBJkfH9JpggubYRTgwfAGY2BkX03dK2sqfu + QVTVTKMj2VI0sKcFfLZ BDW = ----- END VERSLEUTELD PRIVE SLEUTEL-----

Pak alleen certificaten of privésleutel uit

Voeg toe als u alleen de persoonlijke sleutel wilt uitvoeren -nocerts aan de opdracht:

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

Gebruik als u alleen de certificaten nodig heeft -nokeys (en aangezien we ons geen zorgen maken over de privésleutel, kunnen we deze ook veilig weglaten -nodes):

openssl pkcs12 -info -in INFILE.p12 -nokeys

Bewaar certificaten en privésleutels in bestanden

U kunt de certificaten en de geheime sleutel uit een PKCS # 12-bestand exporteren en ze in PEM-indeling opslaan in een nieuw bestand door een uitvoerbestandsnaam op te geven:

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

Nogmaals, u wordt gevraagd om het wachtwoord van het PKCS # 12-bestand. Net als voorheen kunt u de privésleutel versleutelen door het -nodes vlag van de opdracht en / of toevoegen -nocerts or -nokeys om alleen de persoonlijke sleutel of certificaten uit te voeren. Dus om een ​​privésleutelbestand te genereren, kunnen we deze opdracht gebruiken:

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

En gebruik dit om een ​​bestand te maken dat alleen de certificaten bevat:

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

Converteer privésleutel naar PKCS # 1-indeling

De bovenstaande voorbeelden geven allemaal de privésleutel weer in de standaardinstelling van OpenSSL PKCS # 8 formaat. Als je weet dat je het nodig hebt PKCS # 1 in plaats daarvan kunt u de uitvoer van het PKCS # 12-hulpprogramma van OpenSSL naar het RSA- of EC-hulpprogramma sturen, afhankelijk van het sleuteltype. Beide onderstaande opdrachten zullen een sleutelbestand in PKCS # 1-indeling uitvoeren:

RSA

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

ECDSA

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

Opmerking: U kunt het verschil zien tussen PKCS # 8 en PKCS # 1 privésleutelbestanden door naar de eerste regel tekst te kijken. PKCS # 1-bestanden specificeren het algoritme:
-----BEGIN RSA PRIVATE KEY-----

PKCS # 8-bestanden tonen het algoritme niet en kunnen ook worden gecodeerd:
-----BEGIN PRIVATE KEY-----
or
-----BEGIN ENCRYPTED PRIVATE KEY-----


Bedankt voor het kiezen van SSL.com! Als u vragen heeft, neem dan contact met ons op via e-mail op Support@SSL.com, bel 1-877-SSL-SECURE, of klik gewoon op de chatlink rechts onderaan deze pagina.

Abonneer u op de nieuwsbrief van SSL.com

Mis geen nieuwe artikelen en updates van SSL.com

Blijf geïnformeerd en veilig

SSL.com is een wereldleider op het gebied van cyberbeveiliging, PKI en digitale certificaten. Meld u aan om het laatste branchenieuws, tips en productaankondigingen te ontvangen van SSL.com.

We willen graag uw feedback

Vul onze enquête in en laat ons uw mening over uw recente aankoop weten.