Экспорт сертификатов и закрытого ключа из файла PKCS # 12 с помощью OpenSSL

Примечание: Эта статья не относится к сертификатам подписи кода SSL.com и подписи документов. Закрытые ключи сертификатов этих типов нельзя экспортировать и создавать в виде файлов .pfx. Сертификаты подписи кода SSL.com и подписи документов, а также их закрытые ключи могут создаваться и храниться только в Облачная среда подписи eSigner, чтобы Yubikey устройство или поддерживаемое Облако HSM.

Это руководство проведет вас через извлечение информации из файла 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.

СРАВНИТЬ SSL /TLS СЕРТИФИКАТЫ

Видео

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

Во всех приведенных ниже примерах подставьте имена файлов, с которыми вы фактически работаете. INFILE.p12, OUTFILE.crtкачества OUTFILE.key.

Просмотр информации PKCS # 12 на экране

Чтобы вывести всю информацию из файла PKCS # 12 на экран в Формат PEM, используйте эту команду:

openssl pkcs12 -info -in INFILE.p12 -nodes

Затем вам будет предложено ввести пароль файла 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 = US / ST = Texas / L = Houston / O = SSL Corp / CN = SSL.com Client Certificate Intermediate CA RSA R1 ----- BEGIN CERTIFICATE ----- MIIF1DCCA7ygAwIBAgIQcOrAJCMayJsZBKJsyz / aQDANBgkqhkiG9w0BAQsFADB + MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0b24x ETAPBgNVBAoMCFNTTCBDb3JwMTowOAYDVQQDDDFTU0wuY29tIENsaWVudCBDZXJ0 ... bwK6ABAZUq6QcvhD0LYsXya + ncDCR6wxb9E0DWd4ATQMzxGTu / yE3kT + 9Ef6IY + n armh3HZUfan2Hb64YD0tjLMca / PC + sKAZu28gB / 3HQRHIFugvh6RO3bIoorl0jUg biMl1r2 -----

Зашифровать закрытый ключ

Если вы хотите зашифровать закрытый ключ и защитить его паролем перед выводом, просто опустите -nodes флаг из команды:

openssl pkcs12 -info -in INFILE.p12

В этом случае вам будет предложено ввести и проверить новый пароль после того, как OpenSSL выдаст какие-либо сертификаты, а закрытый ключ будет зашифрован (обратите внимание, что текст ключа начинается с -----BEGIN ENCRYPTED PRIVATE KEY-----):

Введите PEM фразу: контролирующая - Enter PEM фразу: ----- BEGIN зашифрованного Частного 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 -in INFILE.p12 -nokeys

Сохранить сертификаты и личные ключи в файлы

Вы можете экспортировать сертификаты и закрытый ключ из файла PKCS # 12 и сохранить их в формате PEM в новый файл, указав выходное имя файла:

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

Вам снова будет предложено ввести пароль файла PKCS # 12. Как и раньше, вы можете зашифровать закрытый ключ, удалив -nodes пометка из команды и / или добавление -nocerts or -nokeys выводить только закрытый ключ или сертификаты. Итак, для генерации файла закрытого ключа мы можем использовать эту команду:

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

И чтобы создать файл, включающий только сертификаты, используйте это:

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

Конвертировать закрытый ключ в формат PKCS # 1

Приведенные выше примеры выводят закрытый ключ в OpenSSL по умолчанию. PKCS # 8 формат. Если вы знаете, что вам нужно PKCS # 1 вместо этого вы можете передать вывод утилиты OpenSSL PKCS # 12 ее утилите RSA или EC в зависимости от типа ключа. Обе команды ниже выведут файл ключа в формате 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

Примечание: Вы можете увидеть разницу между файлами закрытого ключа PKCS # 8 и PKCS # 1, посмотрев на первую строку текста. В файлах PKCS # 1 будет указан алгоритм:
-----BEGIN RSA PRIVATE KEY-----

Файлы PKCS # 8 не показывают алгоритм, а также могут быть зашифрованы:
-----BEGIN PRIVATE KEY-----
or
-----BEGIN ENCRYPTED PRIVATE KEY-----


Спасибо, что выбрали SSL.com! Если у вас возникнут вопросы, свяжитесь с нами по электронной почте по адресу Support@SSL.com, вызов 1-877-SSL-SECUREили просто нажмите на ссылку чата в правом нижнем углу этой страницы.

Подпишитесь на рассылку новостей SSL.com

Не пропустите новые статьи и обновления с SSL.com

Будьте в курсе и будьте в безопасности

SSL.com является мировым лидером в области кибербезопасности, PKI и цифровые сертификаты. Подпишитесь, чтобы получать последние новости отрасли, советы и анонсы продуктов от SSL.com.

Мы будем рады вашим отзывам

Пройдите наш опрос и поделитесь с нами своими мыслями о своей недавней покупке.