Будем собирать PFX файл в Windows 10 с помощью подсистемы Linux. У нас есть:
- Сертификат, cert.pem.
- Ключ, key.pem.
- Цепочка, certnew.p7b.
Включаем bash в Windows:
На диске C создаём папку C:\keys, переносим туда все нужные файлы:
Если цепочка внутри файла сертификата, то пропускаем все операции с цепочкой.
Цепочка у нас в формате p7b, это стандартный формат, когда мы скачиваем цепочку с центра сертификации Windows. Переведём цепочку в PEM формат.
Запускаем bash. Для запуска bash нужно выполнить команду "bash" или "bash.exe".
Проверим что пакет openssl установлен:
sudo dpkg -l | grep openssl
Если не установлен, то пакет ставится через apt-get:
sudo apt-get install openssl
У меня openssl уже стоит, Переходим в папку /mnt/c/keys/
cd /mnt/c/keys/
Выполняем запрос:
openssl pkcs7 -print_certs -in certnew.p7b -out certnew.pem
Получаем файл certnew.pem.
Выполняем запрос:
openssl pkcs12 -inkey key.pem -in cert.pem -certfile certnew.pem -export -out cert.pfx
Если цепочка уже внутри файла сертификата, то:
openssl pkcs12 -inkey key.pem -in cert.pem -export -out cert.pfx
У нас спросят пароль, зададим пароль:
Получаем файл cert.pfx.
Обратная задача
Windows — конвертация PFX (PKCS#12) сертификата в CRT (PEM) и KEY с помощью подсистемы Linux