Как создать .pem
сертификат CA и сертификат клиента из файла PFX с помощью OpenSSL.
Вы можете использовать инструмент командной строки OpenSSL. Следующие команды должны помочь
openssl pkcs12 -in client_ssl.pfx -out client_ssl.pem -clcerts
openssl pkcs12 -in client_ssl.pfx -out root.pem -cacerts
Если вы хотите, чтобы ваш файл был защищен паролем и т. Д., Есть дополнительные параметры.
Вы можете прочитать всю документацию здесь .
Другая перспектива для того, чтобы сделать это в Linux ... вот как это сделать, чтобы полученный единственный файл содержал расшифрованный закрытый ключ, чтобы что-то вроде HAProxy могло использовать его, не запрашивая у вас кодовую фразу.
openssl pkcs12 -in file.pfx -out file.pem -nodes
Затем вы можете настроить HAProxy для использования файла file.pem.
Это РЕДАКТИРОВАНИЕ из предыдущей версии, где у меня было несколько шагов, пока я не понял, что опция -nodes просто обходит шифрование с закрытым ключом. Но я оставляю это здесь, так как это может просто помочь с обучением.
openssl pkcs12 -in file.pfx -out file.nokey.pem -nokeys
openssl pkcs12 -in file.pfx -out file.withkey.pem
openssl rsa -in file.withkey.pem -out file.key
cat file.nokey.pem file.key > file.combo.pem
Затем вы можете настроить HAProxy для использования файла file.combo.pem.
Причина, по которой вам нужно два отдельных шага, на которых вы указываете файл с ключом, а другой - без ключа, заключается в том, что если у вас есть файл, который имеет как зашифрованный, так и дешифрованный ключ, что-то вроде HAProxy по-прежнему предлагает вам ввести парольную фразу, когда он его использует.
Несмотря на то, что другие ответы верны и подробно объяснены, я обнаружил некоторые трудности с их пониманием. Вот метод, который я использовал ( взято отсюда ):
Первый случай: чтобы преобразовать файл PFX в файл PEM, содержащий как сертификат, так и закрытый ключ:
Второй случай: чтобы преобразовать файл PFX в отдельные файлы PEM с открытым и закрытым ключами:
Извлекает закрытый ключ из PFX в файл PEM:
Экспортирует сертификат (включает только открытый ключ):
Удаляет пароль (перефразирование) из извлеченного закрытого ключа (необязательно):
источник