Denne vejledning fører dig gennem udpakning af oplysninger fra en PKCS # 12-fil med OpenSSL. PKCS # 12 (også kendt som PKCS12 eller PFX) er et binært format til lagring af en certifikatkæde og privat nøgle i en enkelt, krypterbar fil. PKCS # 12-filer bruges ofte til at importere og eksportere certifikater og private nøgler på Windows- og macOS-computere og har normalt filnavneudvidelser .p12
or .pfx
.
For flere nyttige vejledninger og de seneste nyheder om cybersikkerhed, tilmeld dig SSL.coms nyhedsbrev her:
Hvad er OpenSSL?
OpenSSL er et meget nyttigt open source kommandolinjeværktøjssæt til at arbejde med X.509 certifikater, anmodninger om underskrift af certifikat (CSRs) og kryptografiske nøgler. Hvis du bruger en UNIX-variant som Linux eller macOS, er OpenSSL sandsynligvis allerede installeret på din computer. Hvis du vil bruge OpenSSL på Windows, kan du aktivere Windows 10s Linux-undersystem eller installer Cygwin. Du kan også nemt skabe en PKCS # 12-fil med openSSL.
SSL.com tilbyder en bred vifte af SSL /TLS servercertifikater til HTTPS-websteder.
Video
I alle nedenstående eksempler skal du erstatte navnene på de filer, du faktisk arbejder med INFILE.p12
, OUTFILE.crt
og OUTFILE.key
.
Se PKCS # 12-oplysninger på skærmen
For at dumpe alle oplysningerne i en PKCS # 12-fil til skærmen i PEM-format, brug denne kommando:
openssl pkcs12 -info -in INFILE.p12 -noder
Du bliver derefter bedt om adgangskoden til PKCS # 12-filen:
Indtast importadgangskode:
Skriv det indtastede kodeord, når du opretter PKCS # 12-filen, og tryk på enter
. OpenSSL udsender alle certifikater og private nøgler i filen til skærmen:
Taskeegenskaber 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 udsteder = / C = US / ST = Texas / L = Houston / O = SSL Corp / CN = SSL.com klientcertifikat Intermediate CA RSA R1 ----- BEGIN CERTIFICATE ----- MIIF1DCCA7ygAwIBAgIQcOrAJCMayJsZBKJsyz / aQDANBgkqhkiG9w0BAQsFADB + MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0b24x ETAPBgNVBAoMCFNTTCBDb3JwMTowOAYDVQQDDDFTU0wuY29tIENsaWVudCBDZXJ0 ... bwK6ABAZUq6QcvhD0LYsXya + ncDCR6wxb9E0DWd4ATQMzxGTu / yE3kT + 9Ef6IY + n armh3HZUfan2Hb64YD0tjLMca / PC + sKAZu28gB / 3HQRHIFugvh6RO3bIoorl0jUg 1Ml2r83LIV-0U6
Krypter privat nøgle
Hvis du gerne vil kryptere den private nøgle og beskytte den med en adgangskode før output, skal du blot udelade -nodes
flag fra kommandoen:
openssl pkcs12 -info -i INFILE.p12
I dette tilfælde bliver du bedt om at indtaste og bekræfte en ny adgangskode, efter at OpenSSL udsender eventuelle certifikater, og den private nøgle bliver krypteret (bemærk at teksten til nøglen begynder med -----BEGIN ENCRYPTED PRIVATE KEY-----
):
Indtast PEM pass sætning: Kontrol - Indtast PEM pass sætning: ----- BEGIN KRYPTERET private nøgle ----- MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIGwhJIMXRiLQCAggA MBQGCCqGSIb3DQMHBAiXdeymTYuedgSCBMjwGg78PsqiNJLfpDFbMxL98u3tK9Cs ... SGVCCBj5vBpSbBXAGbOv74h4satKmAMgGc8SgU06geS9gFgt / wLwehMJ / H4BSmex 4S / 2tYzZrDBJkfH9JpggubYRTgwfAGY2BkX03dK2sqfu + QVTVTKMj2VI0sKcFfLZ BDW = ----- END ENCRYPTED PRIVATE Nøgle -----
Uddrag kun certifikater eller privat nøgle
Hvis du kun vil sende den private nøgle, skal du tilføje -nocerts
til kommandoen:
openssl pkcs12 -info -in INFILE.p12 -noder -nocerts
Hvis du kun har brug for certifikaterne, skal du bruge -nokeys
(og da vi ikke er optaget af den private nøgle, kan vi også udelade sikkert -nodes
):
openssl pkcs12 -info -in INFILE.p12 -nøgler
Gem certifikater og private nøgler i filer
Du kan eksportere certifikaterne og den private nøgle fra en PKCS # 12-fil og gemme dem i PEM-format til en ny fil ved at specificere et outputfilnavn:
openssl pkcs12 -i INFILE.p12 -out OUTFILE.crt -noder
Igen bliver du bedt om adgangskoden til PKCS # 12-filen. Som før kan du kryptere den private nøgle ved at fjerne -nodes
flag fra kommandoen og / eller tilføj -nocerts
or -nokeys
for kun at sende den private nøgle eller certifikater. Så for at generere en privat nøglefil kan vi bruge denne kommando:
openssl pkcs12 -in INFILE.p12 -out OUTFILE.key -nodes -nocerts
Og for at oprette en fil, der kun indeholder certifikaterne, skal du bruge denne:
openssl pkcs12 -i INFILE.p12 -out OUTFILE.crt -nokeys
Konverter privat nøgle til PKCS # 1-format
Eksemplerne fremfører først og fremmest den private nøgle i OpenSSLs standard PKCS # 8 format. Hvis du ved, du har brug for PKCS # 1 i stedet kan du røre output fra OpenSSL's PKCS # 12-værktøj til dets RSA- eller EC-værktøj afhængigt af nøgletypen. Begge nedenstående kommandoer udsender en nøglefil i PKCS # 1-format:
RSA
openssl pkcs12 -i INFILE.p12 -noder -nocerts | openssl rsa -out OUTFILE.key
ECDSA
openssl pkcs12 -i INFILE.p12 -noder -nocerts | openssl ec -out OUTFILE.key
Bemærk: Du kan fortælle forskellen mellem PKCS # 8 og PKCS # 1 private nøglefiler ved at se på den første tekstlinie. PKCS # 1-filer specificerer algoritmen:
-----BEGIN RSA PRIVATE KEY-----
PKCS # 8-filer viser ikke algoritmen og kan også være krypteret:
-----BEGIN PRIVATE KEY-----
or
-----BEGIN ENCRYPTED PRIVATE KEY-----