Exportera certifikat och privat nyckel från en PKCS # 12-fil med OpenSSL

Hur man extraherar certifikaten och den privata nyckeln från en PKCS # 12-fil (även känd som PKCS12, PFX, .p12 och .pfx) med OpenSSL.

Notera: Den här artikeln gäller inte för SSL.com-kodsignering och dokumentsigneringscertifikat. De privata nycklarna för dessa typer av certifikat kan inte exporteras och de kan inte genereras som .pfx-filer. SSL.com-kodsignerings- och dokumentsigneringscertifikat och deras privata nycklar kan endast genereras och lagras i eSigner molnsigneringsmiljö, en YubiKey enhet, eller en stödd Moln HSM.

Denna vägledning leder dig genom att extrahera information från en PKCS # 12-fil med OpenSSL. PKCS # 12 (även känd som PKCS12 eller PFX) är ett binärt format för att lagra en certifikatkedja och en privat nyckel i en enda, krypterbar fil. PKCS # 12-filer används vanligtvis för att importera och exportera certifikat och privata nycklar på Windows och macOS-datorer och har vanligtvis filnamnstillägg .p12 or .pfx.

För mer användbara instruktioner och de senaste nyheterna om cybersäkerhet, registrera dig för SSL.coms nyhetsbrev här:

Vad är OpenSSL?
OpenSSL är en mycket användbar verktygssats för öppen källkod för att arbeta med X.509 certifikat, begäran om certifikatsignering (CSRs) och kryptografiska nycklar. Om du använder en UNIX-variant som Linux eller macOS är OpenSSL förmodligen redan installerat på din dator. Om du vill använda OpenSSL i Windows kan du aktivera Windows 10: s Linux-delsystem eller installera Cygwin. Du kan också enkelt skapa en PKCS # 12-fil med openSSL.

SSL.com erbjuder ett brett utbud av SSL /TLS servercertifikat för HTTPS-webbplatser.

JÄMFÖR SSL /TLS INTYG

Video

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

I alla exemplen som visas nedan ersätter du namnen på filerna du faktiskt arbetar med INFILE.p12, OUTFILE.crtoch OUTFILE.key.

Visa PKCS # 12-information på skärmen

För att dumpa all information i en PKCS # 12-fil till skärmen i PEM-format, använd det här kommandot:

openssl pkcs12 -info -in INFILE.p12 -noder

Du kommer sedan att uppmanas att ange lösenordet för PKCS # 12-fil:

Ange importlösenord:

Skriv in det lösenord som anges när du skapar PKCS # 12-filen och tryck på enter. OpenSSL kommer att skriva ut alla certifikat och privata nycklar i filen till skärmen:

Väska Attribut localKeyID: AC 3E 77 9A 99 62 84 3D 77 CB 44 0D F9 78 57 7C 08 28 05 97 ämne = / CN = Aaron Russell/emailAddress=*********@gmail.com emittent = / C = US / ST = Texas / L = Houston / O = SSL Corp / CN = SSL.com klientcertifikat Intermediate CA RSA R1 ----- BEGIN INTYG ----- MIIF1DCCA7ygAwIBAgIQcOrAJCMayJsZBKJsyz / aQDANBgkqhkiG9w0BAQsFADB + MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0b24x ETAPBgNVBAoMCFNTTCBDb3JwMTowOAYDVQQDDDFTU0wuY29tIENsaWVudCBDZXJ0 ... bwK6ABAZUq6QcvhD0LYsXya + ncDCR6wxb9E0DWd4ATQMzxGTu / yE3kT + 9Ef6IY + n armh3HZUfan2Hb64YD0tjLMca / PC + sKAZu28gB / 3HQRHIFugvh6RO3bIoorl0jUg 1Ml2r83LIV-

Kryptera privat nyckel

Om du vill kryptera den privata nyckeln och skydda den med ett lösenord innan den matas ut, helt enkelt utelämna -nodes flagga från kommandot:

openssl pkcs12 -info -i INFILE.p12

I detta fall kommer du att uppmanas att ange och verifiera ett nytt lösenord efter att OpenSSL har matat ut några certifikat, och den privata nyckeln kommer att krypteras (notera att textens nyckel börjar med -----BEGIN ENCRYPTED PRIVATE KEY-----):

Ange PEM lösenfras: Verifiera - Skriv PEM lösenordsfras: ----- BEGIN krypterade privata KEY ----- MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIGwhJIMXRiLQCAggA MBQGCCqGSIb3DQMHBAiXdeymTYuedgSCBMjwGg78PsqiNJLfpDFbMxL98u3tK9Cs ... SGVCCBj5vBpSbBXAGbOv74h4satKmAMgGc8SgU06geS9gFgt / wLwehMJ / H4BSmex 4S / 2tYzZrDBJkfH9JpggubYRTgwfAGY2BkX03dK2sqfu + QVTVTKMj2VI0sKcFfLZ BDW = ----- krypterad PRIVAT NYCKEL -----

Extrahera endast certifikat eller privat nyckel

Om du bara vill skriva ut den privata nyckeln lägger du till -nocerts till kommandot:

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

Om du bara behöver certifikaten, använd -nokeys (och eftersom vi inte är intresserade av den privata nyckeln kan vi också säkert utelämna -nodes):

openssl pkcs12 -info -i INFILE.p12 -nokeys

Spara certifikat och privata nycklar i filer

Du kan exportera certifikaten och den privata nyckeln från en PKCS # 12-fil och spara dem i PEM-format till en ny fil genom att ange ett utgångsfilnamn:

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

Återigen kommer du att bli ombedd att ange lösenordet för PKCS # 12-filen. Som tidigare kan du kryptera den privata nyckeln genom att ta bort -nodes flagga från kommandot och / eller lägg till -nocerts or -nokeys för att bara skriva ut den privata nyckeln eller certifikaten. Så för att generera en privat nyckelfil kan vi använda detta kommando:

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

Och för att skapa en fil som endast innehåller certifikaten, använd den här:

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

Konvertera privat nyckel till PKCS # 1-format

Exemplen framför allt matar ut den privata nyckeln i OpenSSLs standard PKCS # 8 formatera. Om du vet att du behöver PKCS # 1 istället kan du leda utdata från OpenSSL: s PKCS # 12-verktyg till dess RSA- eller EC-verktyg beroende på nyckeltyp. Båda kommandona nedan matar ut en nyckelfil i PKCS # 1-format:

RSA

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

ECDSA

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

Notera: Du kan se skillnaden mellan PKCS # 8 och PKCS # 1-privata nyckelfiler genom att titta på den första raden i text. PKCS # 1-filer anger algoritmen:
-----BEGIN RSA PRIVATE KEY-----

PKCS # 8-filer visar inte algoritmen och kan också vara krypterade:
-----BEGIN PRIVATE KEY-----
or
-----BEGIN ENCRYPTED PRIVATE KEY-----


Tack för att du valde SSL.com! Om du har några frågor, vänligen kontakta oss via e-post på Support@SSL.com, ring upp 1-877-SSL-SECURE, eller bara klicka på chattlänken längst ner till höger på denna sida.

Håll dig informerad och säker

SSL.com är en global ledare inom cybersäkerhet, PKI och digitala certifikat. Registrera dig för att få de senaste branschnyheterna, tipsen och produktmeddelanden från SSL.com.

Vi vill gärna ha din feedback

Följ vår undersökning och låt oss veta vad du tycker om ditt senaste köp.