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.
Video
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-----