===== Как извлечь сертификат и закрытый ключ из PFX-файла с помощью OpenSSL ===== {{:unix-linux:openssl:pasted:20211214-184623.png }} Бывают ситуации, когда имеется **PFX**-контейнер, защищённый паролем и нам известен этот пароль. При этом необходимо извлечь из этого PFX-файла данные сертификата и закрытого ключа в формате PEM. Рассмотрим пример того, как выполнить эту задачу с помощью утилиты **openssl**. \\ ==== Шаг 1. Извлечение сертификата ==== Распаковываем сертификат. При выполнении будет запрошен пароль (Import Password), которым защищён PFX контейнер. Вводим пароль.
openssl pkcs12 -in my_ru.pfx -clcerts -nokeys -out my_ru.crt 

Enter Import Password: ************ MAC verified OK
\\ ==== Шаг 2. Извлечение закрытого ключа ==== Распаковываем закрытый ключ. При выполнении будет запрошен пароль (Import Password), которым защищён PFX контейнер. Вводим пароль. Далее будет запрошена новая парольная фраза (PEM pass phrase), которой будут зашифрованы данные закрытого ключа при выгрузке. Два раза вводим парольную фразу защиты закрытого ключа.
openssl pkcs12 -in my_ru.pfx -nocerts -out my_ru_encr.key

Enter Import Password: ************ MAC verified OK Enter PEM pass phrase: ****** Verifying - Enter PEM pass phrase: ******
\\ ==== Шаг 3. Дешифровка закрытого ключа ==== Выполняем дешифровку закрытого ключа. При запросе вводим парольную фразу (PEM pass phrase), заданную на шаге 2.
openssl rsa -in my_ru_encr.key -out my_ru.key

Enter pass phrase for my_ru_encr.key: ****** writing RSA key
В результате имеем два файла ''my_ru.crt'' (сертификат) и ''my_ru.key'' (дешифрованный закрытый ключ) в формате PEM, которые можно использовать для настройки разных сервисов, например, для включения SSL на веб-сервере на базе Linux. Файл ''my_ru_encr.key'' в большинстве случаев не требуется и может быть удалён. \\ ---- Проверено на следующих конфигурациях: ^ Версия OpenSSL ^ | OpenSSL 1.0.2d-fips 9 Jul 2015 | ---- {{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 14.12.2021 18:24 {{tag>OpenSSL SSL Certificate PFX PEM}} ~~DISCUSSION~~