Как создать .pem
сертификат CA и сертификат клиента из файла PFX с помощью OpenSSL.
Как создать .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 по-прежнему предлагает вам ввести парольную фразу, когда он его использует.
Несмотря на то, что другие ответы верны и подробно объяснены, я обнаружил некоторые трудности с их пониманием. Вот метод, который я использовал ( взято отсюда ):
openssl pkcs12 -in filename.pfx -out cert.pem -nodes
Извлекает закрытый ключ из PFX в файл PEM:
openssl pkcs12 -in filename.pfx -nocerts -out key.pem
Экспортирует сертификат (включает только открытый ключ):
openssl pkcs12 -in filename.pfx -clcerts -nokeys -out cert.pem
Удаляет пароль (перефразирование) из извлеченного закрытого ключа (необязательно):
openssl rsa -in key.pem -out server.key