Konwersja certyfikatów

Format PEM

Format PEM jest najczęściej używanym formatem przez wystawców certyfikatów. Certyfikaty w formacie PEM mają najczęściej rozszerzenia takie jak .pem, .crt, .cer, oraz .key. Są to pliki ASCII zakodowane w Base64 i zawierają linie o treści "-----BEGIN CERTIFICATE-----" oraz "-----END CERTIFICATE-----". Certyfikaty serwera, pośredniczące oraz klucze prywatne mogą występować w formacie PEM.

Serwer Apache oraz podobne wykorzystują certyfikaty w formacie PEM. Wiele certyfikatów PEM, włącznie z kluczem prywatnym, może być połączonych w jednym pliku, jeden pod drugim. Większość serwerów, w tym Apache, oczekuje jednak iż certyfikaty będą się znajdować w jednym pliku, zaś klucz prywatny w oddzielnym.

Format DER

Format DER jest binarnym zapisem certyfikatu w odróżnieniu od zapisu ASCII formatu PEM. Może posiadać rozszerzenie .der jednak częściej jest zapisywany jako .cer, więc jedynym sposobem na odróżnienie certyfikatu w formacie DER od PEM jest otwarcie pliku w edytorze tekstowym i odnalezienie linii BEGIN/END, które świadczą o zapisie PEM. Wszystkie typy certyfikatów i kluczy prywatnych mogą być zapisane w formacie DER. DER jest najczęściej używany w platformach Java.

Format PKCS#7/P7B

Format PKCS#7 lub P7B jest zazwyczaj zapisywany jako Base64 ASCII i posiada rozszerzenie pliku .p7b lub .p7c. Certyfikaty P7B zawierają linie "-----BEGIN PKCS7-----" and "-----END PKCS7-----". Plik P7B zawiera wyłącznie certyfikaty, nie klucz prywatny. Wiele platform wspiera pliku P7B, w szczególnosci Microsoft Windows oraz Java Tomcat.

Format PKCS#12/PFX

Forat PKCS#12 lub PFX format jest zapisem binarnym certyfikatu serwera, ewentualnych certyfikatów pośredniczących oraz klucza prywatnego w jednym pliku, który może być dodatkowo szyfrowany. Pliki PFX mają zazwyczaj rozszerzenia .pfx oraz .p12. Pliki PFX są najczęściej używane w systemach Windows machines do importu oraz eksportu certyfikatów oraz kluczy prywatnych.

Podczas konwersji pliku PFX do formatu PEM, OpenSSL umieści wszystkie certyfikaty i klucz prywatny w jednym pliku. Należy otworzyć taki plik w edytorze tekstowym a następne skopiować certyfikaty i klucz prywatny (razem z liniami BEGIN/END) do oddzielnych plików i zapisać je jako certificate.cer, CACert.cer, and privateKey.key.

Komendy OpenSSL do konwersji certyfikatów SSL w Twoim systemie

Jest mocno zalecane aby dokonywać konwersji z oraz na format plików .pfx na własnym serwerze przy użyciu OpenSSL. Dzięki temu klucz prywatny pozostaje w tym samym systemie. Użyj poniższych komend OpenSSL aby przekonwertować certyfikaty SSL na różne formaty w swoim systemie:

OpenSSL konwersja PEM

Konwersja PEM do DER

openssl x509 -outform der -in certificate.pem -out certificate.der

Konwersja PEM do P7B

openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer

Konwersja PEM do PFX

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

OpenSSL konwersja DER

Konwersja DER do PEM

openssl x509 -inform der -in certificate.cer -out certificate.pem

OpenSSL konwersja P7B

Konwersja P7B do PEM

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

Konwersja P7B do PFX

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer

OpenSSL konwersja PFX

Konwersja PFX do PEM

openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes

Do porównania:

Porównaj!