Tento návod vás provede extrahováním informací ze souboru PKCS # 12 pomocí OpenSSL. PKCS # 12 (také známý jako PKCS12 nebo PFX) je binární formát pro uložení řetězce certifikátů a soukromého klíče do jediného šifrovaného souboru. Soubory PKCS # 12 se běžně používají k importu a exportu certifikátů a soukromých klíčů v počítačích se systémem Windows a MacOS a obvykle mají přípony názvu souboru .p12
or .pfx
.
Chcete-li získat další užitečné návody a nejnovější zprávy o kybernetické bezpečnosti, přihlaste se k odběru zpravodaje SSL.com zde:
Co je OpenSSL?
OpenSSL je velmi užitečný open-source nástroj příkazového řádku pro práci s ním X.509 certifikáty, žádosti o podpis certifikátů (CSRs) a kryptografické klíče. Pokud používáte variantu UNIX, jako je Linux nebo macOS, je OpenSSL pravděpodobně již v počítači nainstalována. Pokud chcete používat OpenSSL ve Windows, můžete povolit Windows 10 podsystém Linux nebo nainstalovat Cygwin. Můžete také snadno vytvořit soubor PKCS # 12 s openSSL.
SSL.com poskytuje širokou škálu SSL /TLS certifikáty serveru pro webové stránky HTTPS.
Video
Ve všech níže uvedených příkladech nahraďte názvy souborů, se kterými skutečně pracujete INFILE.p12
, OUTFILE.crt
, a OUTFILE.key
.
Zobrazení informací PKCS # 12 na obrazovce
Chcete-li vypsat všechny informace v souboru PKCS # 12 na obrazovku ve formátu Formát PEM, použijte tento příkaz:
openssl pkcs12 -info -in INFILE.p12 -nodes
Poté budete vyzváni k zadání hesla souboru PKCS # 12:
Zadejte heslo pro import:
Zadejte heslo zadané při vytváření souboru PKCS # 12 a stiskněte enter
. OpenSSL vydá všechny certifikáty a soukromé klíče v souboru na obrazovku:
Atributy sáčku localKeyID: AC 3E 77 9A 99 62 84 3D 77 CB 44 0D F9 78 57 7C 08 28 05 97 předmět = / CN = Aaron Russell/emailAddress=********@gmail.com emitent = / C = US / ST = Texas / L = Houston / O = SSL Corp / CN = SSL.com klientského certifikátu CA Intermediate RSA R1 ----- BEGIN CERTIFICATE ----- MIIF1DCCA7ygAwIBAgIQcOrAJCMayJsZBKJsyz / aQDANBgkqhkiG9w0BAQsFADB + MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0b24x ETAPBgNVBAoMCFNTTCBDb3JwMTowOAYDVQQDDDFTU0wuY29tIENsaWVudCBDZXJ0 ... bwK6ABAZUq6QcvhD0LYsXya + ncDCR6wxb9E0DWd4ATQMzxGTu / yE3kT + 9Ef6IY + n armh3HZUfan2Hb64YD0tjLMca / PC + sKAZu28gB / 3HQRHIFugvh6RO3bIoorl0jUg 1Ml2wU83 - KON-
Šifrovat soukromý klíč
Pokud chcete soukromý klíč před výstupem zašifrovat a chránit jej heslem, jednoduše vynechejte -nodes
příznak z příkazu:
openssl pkcs12 -info -v souboru INFILE.p12
V tomto případě budete vyzváni k zadání a ověření nového hesla poté, co OpenSSL vydá jakékoli certifikáty, a soukromý klíč bude zašifrován (všimněte si, že text klíče začíná znakem -----BEGIN ENCRYPTED PRIVATE KEY-----
):
Enter PEM frázi: Ověřování - vstoupit PEM frázi: ----- BEGIN zašifrován privátním klíčem ----- MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIGwhJIMXRiLQCAggA MBQGCCqGSIb3DQMHBAiXdeymTYuedgSCBMjwGg78PsqiNJLfpDFbMxL98u3tK9Cs ... SGVCCBj5vBpSbBXAGbOv74h4satKmAMgGc8SgU06geS9gFgt / wLwehMJ / H4BSmex 4S / 2tYzZrDBJkfH9JpggubYRTgwfAGY2BkX03dK2sqfu + QVTVTKMj2VI0sKcFfLZ BRO = ----- END šifrována SOUKROMÍ KLÍČ -----
Extrahujte pouze certifikáty nebo soukromý klíč
Pokud chcete pouze vydat soukromý klíč, přidejte -nocerts
k příkazu:
openssl pkcs12 -info -v INFILE.p12 -nodes -nocerts
Pokud potřebujete pouze certifikáty, použijte -nokeys
(a protože se netýkáme soukromého klíče, můžeme také bezpečně vynechat -nodes
):
openssl pkcs12 -info -in INFILE.p12 -nokeys
Uložte certifikáty a soukromé klíče do souborů
Můžete exportovat certifikáty a soukromý klíč ze souboru PKCS # 12 a uložit je ve formátu PEM do nového souboru zadáním výstupního názvu souboru:
openssl pkcs12 -in INFILE.p12-out OUTFILE.crt -nodes
Opět budete vyzváni k zadání hesla souboru PKCS # 12. Stejně jako dříve můžete soukromý klíč zašifrovat odstraněním -nodes
příznak z příkazu a / nebo přidat -nocerts
or -nokeys
pro výstup pouze soukromý klíč nebo certifikáty. K vygenerování souboru soukromého klíče tedy můžeme použít tento příkaz:
openssl pkcs12 -in INFILE.p12 -out OUTFILE.key -nodes -nocerts
Chcete-li vytvořit soubor obsahující pouze certifikáty, použijte toto:
openssl pkcs12 -in INFILE.p12-out OUTFILE.crt -nokeys
Převést soukromý klíč do formátu PKCS # 1
V příkladech je především výstup soukromého klíče ve výchozím nastavení OpenSSL PKCS # 8 formát. Pokud víte, že potřebujete PKCS # 1 místo toho můžete v závislosti na typu klíče převést výstup nástroje OpenSSL PKCS # 12 do jeho nástroje RSA nebo EC. Oba níže uvedené příkazy vygenerují soubor klíče ve formátu PKCS # 1:
RSA
openssl pkcs12 -in INFILE.p12 -nodes -nocerts | openssl rsa -out OUTFILE.key
ECDSA
openssl pkcs12 -in INFILE.p12 -nodes -nocerts | openssl ec-out OUTFILE.key
Poznámka: Rozdíl mezi soubory soukromých klíčů PKCS # 8 a PKCS # 1 můžete zjistit na prvním řádku textu. Soubory PKCS # 1 specifikují algoritmus:
-----BEGIN RSA PRIVATE KEY-----
Soubory PKCS # 8 neukazují algoritmus a mohou být také šifrovány:
-----BEGIN PRIVATE KEY-----
or
-----BEGIN ENCRYPTED PRIVATE KEY-----