Jak skonwertować plik PFX do PEM używając OpenSSL?

Wstęp

Pliki PFX (Personal Information Exchange) i PEM (Privacy Enhanced Mail) są dwoma różnymi formatami przechowującymi dane klucza publicznego i prywatnego, a także certyfikaty SSL/TLS

Pierwszy z nich (PFX) stosowany jest często w systemach operacyjnych Windows, natomiast drugi (PEM) spotykany jest na systemach Unix/Linux.

Plik PFX

PFX służy do przechowywania kluczy prywatnych, certyfikatów i innych informacji o bezpieczeństwie w jednym pliku. Plik ten określany jest przez standard PKCS #12. Spotykanymi rozszerzeniami dla PKCS #12 są  *.pfx lub *.p12

Plik ten zazwyczaj jest chroniony hasłem.

Plik PEM

PEM służy do kodowania danych binarnych, takich jak klucze publiczne, klucze prywatne i certyfikaty, w czytelnej formie tekstowej podobnej jak poniżej:

—–BEGIN CERTIFICATE—– 
        <BASE64 DATA>
—–END CERTIFICATE—–.


Format ten jest szeroko stosowany w kontekście certyfikatów X.509, a także kluczy publicznych i prywatnych.

Konwersja


Opcja #1: PFX -> PEM (certyfikat+klucz prywatny)

By uzyskać klucz prywatny (niechroniony hasłem) należy wykonać polecenie:

openssl pkcs12 -in myPfx.pfx -nocerts -out privKey.pem -nodes

By uzyskać certyfikat:

openssl pkcs12 -in myPfx.pfx -clcerts -nokeys -out cert.pem

Oba pliki zawierają rozszerzenie PEM. Ich zawartość można łatwo przejrzeć w edytorach tekstowych.

Opcja #2: PFX -> PEM (jeden plik)

Aby uzyskać tylko jeden plik PEM który będzie zawierał zarówno certyfikat jak i klucz prywatny, należy wykonać polecenie:

openssl pkcs12 -in myPfx.pfx -out convertedCerts.pem -nodes

Przykładowa zawartość pliku PEM wygląda następująco:

Powodzenia!

#buymeacoffee