Това ръководство ще ви преведе през извличане на информация от PKCS # 12 файл с OpenSSL. PKCS # 12 (известен също като PKCS12 или PFX) е двоичен формат за съхраняване на верига от сертификати и частен ключ в един шифроващ се файл. Файловете PKCS # 12 обикновено се използват за импортиране и експортиране на сертификати и частни ключове на компютри с Windows и macOS и обикновено имат разширения на имената на файловете .p12
or .pfx
.
За по-полезни инструкции и най-новите новини за киберсигурността, регистрирайте се за бюлетина на SSL.com тук:
Какво е OpenSSL?
OpenSSL е много полезен набор от инструменти за команден ред с отворен код за работа с X.509 сертификати, заявки за подписване на сертификати (CSRs) и криптографски ключове. Ако използвате UNIX вариант като Linux или macOS, OpenSSL вероятно вече е инсталиран на вашия компютър. Ако искате да използвате OpenSSL в Windows, можете да активирате Linux подсистема на Windows 10 или инсталирате Cygwin. Можете също така лесно създаване на файл PKCS # 12 с openSSL.
SSL.com предоставя голямо разнообразие от SSL /TLS сървърни сертификати за HTTPS уебсайтове.
Видео
Във всички примери, показани по-долу, заменете имената на файловете, с които всъщност работите INFILE.p12
, OUTFILE.crt
, и OUTFILE.key
.
Преглед на информацията за PKCS # 12 на екрана
За да изхвърлите цялата информация в PKCS # 12 файл на екрана в PEM формат, използвайте тази команда:
openssl pkcs12 -info -в INFILE.p12 -възли
След това ще бъдете подканени да въведете паролата на файла PKCS # 12:
Въведете парола за импортиране:
Въведете паролата, въведена при създаването на файла PKCS # 12 и натиснете enter
. OpenSSL ще изведе на екран всички сертификати и частни ключове във файла:
Атрибути на чанта 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 издател = / C = САЩ / ST = Тексас / L = Хюстън / O = SSL Corp / CN = SSL.com сертификат за клиентската Междинно CA RSA R1 ----- BEGIN СЕРТИФИКАТ ----- MIIF1DCCA7ygAwIBAgIQcOrAJCMayJsZBKJsyz / aQDANBgkqhkiG9w0BAQsFADB + MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0b24x ETAPBgNVBAoMCFNTTCBDb3JwMTowOAYDVQQDDDFTU0wuY29tIENsaWVudCBDZXJ0 ... bwK6ABAZUq6QcvhD0LYsXya + ncDCR6wxb9E0DWd4ATQMzxGTu / yE3kT + 9Ef6IY + n armh3HZUfan2Hb64YD0tjLMca / PC + sKAZu28gB / 3HQRHIFugvh6RO3bIoorl0jUg 1Ml2r83UF-BDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEU
Шифроване на частния ключ
Ако искате да шифровате частния ключ и да го защитите с парола преди извеждане, просто пропуснете -nodes
флаг от командата:
openssl pkcs12 -info -в INFILE.p12
В този случай ще бъдете подканени да въведете и потвърдите нова парола, след като OpenSSL изведе сертификати и частният ключ ще бъде шифрован (имайте предвид, че текстът на ключа започва с -----BEGIN ENCRYPTED PRIVATE KEY-----
):
Въвеждане ПОМ подаване израза: Проверка - Въвеждане ПОМ подаване израза: ----- започне криптирани частен ключ ----- MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIGwhJIMXRiLQCAggA MBQGCCqGSIb3DQMHBAiXdeymTYuedgSCBMjwGg78PsqiNJLfpDFbMxL98u3tK9Cs ... SGVCCBj5vBpSbBXAGbOv74h4satKmAMgGc8SgU06geS9gFgt / wLwehMJ / H4BSmex 4S / 2tYzZrDBJkfH9JpggubYRTgwfAGY2BkX03dK2sqfu + QVTVTKMj2VI0sKcFfLZ bdw = ----- END криптирани ЧАСТЕН КЛЮЧ -----
Извличане само на сертификати или частен ключ
Ако искате да изведете само частния ключ, добавете -nocerts
към командата:
openssl pkcs12 -info -in INFILE.p12 -nodes -nocerts
Ако имате нужда само от сертификатите, използвайте -nokeys
(и тъй като не се занимаваме с частния ключ, можем спокойно да пропуснем -nodes
):
openssl pkcs12 -info -в INFILE.p12 -ключове
Запазване на сертификати и частни ключове във файлове
Можете да експортирате сертификатите и частния ключ от файл PKCS # 12 и да ги запишете във формат PEM в нов файл, като посочите име на изходен файл:
openssl pkcs12 -in INFILE.p12 -out OUTFILE.crt -възли
Отново ще бъдете подканени да въведете паролата на файла PKCS # 12. Както и преди, можете да шифровате частния ключ, като премахнете -nodes
флаг от командата и / или добавяне -nocerts
or -nokeys
за да изведете само частния ключ или сертификати. Така че, за да генерираме файл с частен ключ, можем да използваме тази команда:
openssl pkcs12 -в INFILE.p12 -изход OUTFILE.key -nodes -nocerts
И за да създадете файл, включващ само сертификатите, използвайте това:
openssl pkcs12 -в INFILE.p12 -изход OUTFILE.crt -nokeys
Конвертирайте частния ключ във формат PKCS # 1
Примерите по-горе извеждат частния ключ по подразбиране на OpenSSL PKCS # 8 формат. Ако знаете, че имате нужда PKCS # 1 вместо това можете да насочите изхода на помощната програма PKCS # 12 на OpenSSL към нейната помощна програма RSA или EC в зависимост от типа на ключа. И двете команди по-долу ще изведат ключов файл във формат PKCS # 1:
RSA
openssl pkcs12 -в INFILE.p12 -възли -nocerts | openssl rsa -out OUTFILE.key
ECDSA
openssl pkcs12 -in INFILE.p12 -възли -nocerts | openssl ec -out OUTFILE.key
Забележка: Можете да разберете разликата между файловете с частни ключове PKCS # 8 и PKCS # 1, като погледнете първия ред текст. Файловете PKCS # 1 ще определят алгоритъма:
-----BEGIN RSA PRIVATE KEY-----
Файловете PKCS # 8 не показват алгоритъма и могат също да бъдат криптирани:
-----BEGIN PRIVATE KEY-----
or
-----BEGIN ENCRYPTED PRIVATE KEY-----