Відповіді:
Можна скористатися інструментом командного рядка 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.
Це EDIT з попередньої версії, де я виконував ці кілька кроків, поки я не зрозумів, що параметр -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