Denne fremgangsmåten vil lede deg gjennom å trekke ut informasjon fra en PKCS # 12-fil med OpenSSL. PKCS # 12 (også kjent som PKCS12 eller PFX) er et binært format for lagring av en sertifikatkjede og privat nøkkel i en enkelt, krypterbar fil. PKCS # 12-filer brukes ofte til å importere og eksportere sertifikater og private nøkler på Windows- og macOS-datamaskiner, og har vanligvis filnavnutvidelser .p12
or .pfx
.
For flere nyttige veiledninger og de siste cybersikkerhetsnyhetene, registrer deg for SSL.coms nyhetsbrev her:
Hva er OpenSSL?
OpenSSL er en veldig nyttig åpen kildekode-kommandolinjeverktøysett for å jobbe med X.509 sertifikater, sertifikatsigneringsforespørsler (CSRs), og kryptografiske nøkler. Hvis du bruker en UNIX-variant som Linux eller macOS, er sannsynligvis OpenSSL allerede installert på datamaskinen din. Hvis du vil bruke OpenSSL på Windows, kan du aktivere Windows 10s Linux-delsystem eller installer Cygwin. Du kan også enkelt skape en PKCS # 12-fil med openSSL.
SSL.com tilbyr et bredt utvalg av SSL /TLS serversertifikater for HTTPS-nettsteder.
Video
I alle eksemplene vist nedenfor, bytt ut navnene på filene du faktisk jobber med INFILE.p12
, OUTFILE.crt
og OUTFILE.key
.
Vis PKCS # 12-informasjon på skjermen
For å dumpe all informasjonen i en PKCS # 12-fil til skjermen i PEM-format, bruk denne kommandoen:
openssl pkcs12 -info -in INFILE.p12 -noder
Du blir deretter bedt om å oppgi passordet til PKCS # 12-filen:
Skriv inn importpassord:
Skriv inn passordet som ble lagt inn når du oppretter PKCS # 12-filen, og trykk på enter
. OpenSSL sender ut eventuelle sertifikater og private nøkler i filen til skjermen:
Bag Attributter 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 utsteder = / C = USA / ST = Texas / L = Houston / O = SSL Corp / CN = SSL.com klientsertifikat Intermediate CA RSA R1 ----- BEGIN sERTIFIKAT ----- MIIF1DCCA7ygAwIBAgIQcOrAJCMayJsZBKJsyz / aQDANBgkqhkiG9w0BAQsFADB + MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0b24x ETAPBgNVBAoMCFNTTCBDb3JwMTowOAYDVQQDDDFTU0wuY29tIENsaWVudCBDZXJ0 ... bwK6ABAZUq6QcvhD0LYsXya + ncDCR6wxb9E0DWd4ATQMzxGTu / yE3kT + 9Ef6IY + n armh3HZUfan2Hb64YD0tjLMca / PC + sKAZu28gB / 3HQRHIFugvh6RO3bIoorl0jUg 1Ml2r83JFDc ---- BiS0H
Krypter privat nøkkel
Hvis du ønsker å kryptere den private nøkkelen og beskytte den med et passord før den sendes ut, slipper du ganske enkelt -nodes
flagg fra kommandoen:
openssl pkcs12 -info -i INFILE.p12
I dette tilfellet blir du bedt om å angi og bekrefte et nytt passord etter at OpenSSL sender ut eventuelle sertifikater, og den private nøkkelen blir kryptert (merk at teksten til nøkkelen begynner med -----BEGIN ENCRYPTED PRIVATE KEY-----
):
Skriv PEM pass setning: Verifisering - Skriv PEM passfrasen: ----- BEGIN kryptert privatnøkkel som ----- MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIGwhJIMXRiLQCAggA MBQGCCqGSIb3DQMHBAiXdeymTYuedgSCBMjwGg78PsqiNJLfpDFbMxL98u3tK9Cs ... SGVCCBj5vBpSbBXAGbOv74h4satKmAMgGc8SgU06geS9gFgt / wLwehMJ / H4BSmex 4S / 2tYzZrDBJkfH9JpggubYRTgwfAGY2BkX03dK2sqfu + QVTVTKMj2VI0sKcFfLZ BDW = ----- END KRYPT PRIVATE NØKKEL -----
Pakk bare ut sertifikater eller privat nøkkel
Hvis du bare vil skrive ut den private nøkkelen, legger du til -nocerts
til kommandoen:
openssl pkcs12 -info -in INFILE.p12 -noder -nocerts
Hvis du bare trenger sertifikatene, bruk -nokeys
(og siden vi ikke er opptatt av den private nøkkelen, kan vi også trygt utelate -nodes
):
openssl pkcs12 -info -i INFILE.p12 -nokler
Lagre sertifikater og private nøkler i filer
Du kan eksportere sertifikatene og den private nøkkelen fra en PKCS # 12-fil og lagre dem i PEM-format til en ny fil ved å spesifisere et utdatafilnavn:
openssl pkcs12 -in INFILE.p12 -out OUTFILE.crt -noder
Igjen blir du bedt om passordet til PKCS # 12-filen. Som før kan du kryptere den private nøkkelen ved å fjerne -nodes
flagg fra kommandoen og / eller legg til -nocerts
or -nokeys
for bare å sende ut den private nøkkelen eller sertifikatene. Så for å generere en privat nøkkelfil, kan vi bruke denne kommandoen:
openssl pkcs12 -in INFILE.p12 -out OUTFILE.key -noder -nocerts
Og for å lage en fil som bare inneholder sertifikatene, bruk denne:
openssl pkcs12 -in INFILE.p12 -out OUTFILE.crt -nokeys
Konverter privat nøkkel til PKCS # 1-format
Eksemplene fremfor alt sender ut den private nøkkelen i OpenSSLs standard PKCS # 8 format. Hvis du vet at du trenger PKCS # 1 i stedet kan du pipe utgangen fra OpenSSLs PKCS # 12-verktøy til RSA- eller EC-verktøyet, avhengig av nøkkeltype. Begge kommandoene nedenfor sender ut en nøkkelfil 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
OBS: Du kan se forskjellen mellom PKCS # 8 og PKCS # 1 private nøkkelfiler ved å se på den første tekstlinjen. PKCS # 1-filer vil spesifisere algoritmen:
-----BEGIN RSA PRIVATE KEY-----
PKCS # 8-filer viser ikke algoritmen, og kan også være kryptert:
-----BEGIN PRIVATE KEY-----
or
-----BEGIN ENCRYPTED PRIVATE KEY-----