Odpowiedzi:
Możesz użyć narzędzia wiersza poleceń OpenSSL. Poniższe polecenia powinny załatwić sprawę
openssl pkcs12 -in client_ssl.pfx -out client_ssl.pem -clcerts
openssl pkcs12 -in client_ssl.pfx -out root.pem -cacerts
Jeśli chcesz, aby Twój plik był chroniony hasłem itp., Istnieją dodatkowe opcje.
Możesz przeczytać całą dokumentację tutaj .
Inną perspektywą zrobienia tego w Linuksie ... tutaj jest to, jak to zrobić, aby wynikowy pojedynczy plik zawierał odszyfrowany klucz prywatny, aby coś takiego jak HAProxy mogło go używać bez monitowania o hasło.
openssl pkcs12 -in file.pfx -out file.pem -nodes
Następnie możesz skonfigurować HAProxy do używania pliku file.pem.
To jest EDYCJA z poprzedniej wersji, w której miałem wiele kroków, dopóki nie zdałem sobie sprawy, że opcja -nodes po prostu omija szyfrowanie klucza prywatnego. Ale zostawiam to tutaj, ponieważ może to tylko pomóc w nauczaniu.
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
Następnie możesz skonfigurować HAProxy do korzystania z pliku file.combo.pem.
Powodem, dla którego potrzebujesz 2 oddzielnych kroków, w których wskazujesz plik z kluczem, a drugi bez klucza, jest to, że jeśli masz plik, który ma zarówno zaszyfrowany, jak i odszyfrowany klucz, coś takiego jak HAProxy nadal monituje o wpisanie hasła, gdy używa go.
Pomimo tego, że pozostałe odpowiedzi są poprawne i dokładnie wyjaśnione, miałem pewne trudności ze zrozumieniem ich. Oto metoda, której użyłem ( zaczerpnięto stąd ):
openssl pkcs12 -in filename.pfx -out cert.pem -nodes
Wyodrębnia klucz prywatny z pliku PFX do pliku PEM:
openssl pkcs12 -in filename.pfx -nocerts -out key.pem
Eksportuje certyfikat (zawiera tylko klucz publiczny):
openssl pkcs12 -in filename.pfx -clcerts -nokeys -out cert.pem
Usuwa hasło (parafrazę) z wyodrębnionego klucza prywatnego (opcjonalnie):
openssl rsa -in key.pem -out server.key