Ugyanaz az SSL tanúsítvány többféle fájlformátumban is tárolható. A cPanel, az Apache és az Nginx szöveges (PEM) formátumot vár, a Windows-szerverek (IIS) és sok hálózati eszköz viszont egyetlen, jelszóval védett PFX-fájlt kér. Ez a cikk bemutatja a formátumokat, és azt, hogyan alakíthatja át őket az OpenSSL segítségével, amely Linuxon és macOS-en alapból elérhető.
A formátumok
| Formátum | Kiterjesztés | Tartalma | Ki használja? |
|---|---|---|---|
| PEM | .pem, .crt, .cer, .key |
Szöveges (Base64), -----BEGIN ...----- sorral kezdődik. Egy fájlban több tanúsítvány és kulcs is lehet. |
cPanel, Apache, Nginx, a legtöbb Linuxos szoftver |
| DER | .der, .cer |
Ugyanaz, mint a PEM, csak bináris formában. | Java, egyes Windows-alkalmazások |
| PKCS#7 | .p7b, .p7c |
Csak tanúsítványokat (és köztes tanúsítványokat) tartalmaz, privát kulcsot nem. | Windows, Tomcat |
| PKCS#12 | .pfx, .p12 |
A tanúsítványt, a köztes tanúsítványokat és a privát kulcsot egyetlen, jelszóval védett bináris fájlban tárolja. | Windows/IIS, Exchange, Azure, sok hálózati eszköz |
A .crt és a .cer kiterjesztés megtévesztő lehet: lehet PEM és DER is. Ha a fájlt szövegszerkesztővel megnyitva -----BEGIN CERTIFICATE----- sort lát, PEM formátumú.
Az Ügyfélportálon a tanúsítvány oldaláról a tanúsítványt, a köztes tanúsítványt és a privát kulcsot (ha azt a portál hozta létre) külön-külön, valamint egyben PEM formátumban töltheti le.
Átalakítás
PEM → PFX (például Windows-szerverhez)
openssl pkcs12 -export -out pelda.hu.pfx \
-inkey pelda.hu.key -in pelda.hu.crt -certfile ca-bundle.crt
A parancs jelszót kér, amellyel a PFX-fájl védett lesz. A jelszót a fájl importálásakor kell megadni.
Az OpenSSL 3 olyan titkosítással készíti a PFX-fájlt, amelyet a régebbi Windows-verziók (például a Windows Server 2016) nem tudnak beolvasni. Ilyenkor adja hozzá a -legacy kapcsolót:
openssl pkcs12 -export -legacy -out pelda.hu.pfx \
-inkey pelda.hu.key -in pelda.hu.crt -certfile ca-bundle.crt
PFX → PEM (például cPanelhez vagy Linuxos szerverhez)
# A privát kulcs
openssl pkcs12 -in pelda.hu.pfx -nocerts -nodes -out pelda.hu.key
# A tanúsítvány
openssl pkcs12 -in pelda.hu.pfx -clcerts -nokeys -out pelda.hu.crt
# A köztes tanúsítványok
openssl pkcs12 -in pelda.hu.pfx -cacerts -nokeys -out ca-bundle.crt
A -nodes kapcsoló miatt a kiírt privát kulcs nem lesz jelszóval védve, ezért kezelje bizalmasan.
DER ↔ PEM
# DER → PEM
openssl x509 -inform der -in pelda.hu.der -out pelda.hu.crt
# PEM → DER
openssl x509 -outform der -in pelda.hu.crt -out pelda.hu.der
P7B → PEM
openssl pkcs7 -print_certs -in pelda.hu.p7b -out pelda.hu.pem
Hasznos ellenőrzések
A tanúsítvány adatainak megjelenítése (kinek szól, ki adta ki, meddig érvényes):
openssl x509 -in pelda.hu.crt -noout -subject -issuer -dates -ext subjectAltName
Összetartozik-e a tanúsítvány és a privát kulcs? A két parancs kimenetének meg kell egyeznie:
openssl x509 -in pelda.hu.crt -noout -pubkey | openssl sha256
openssl pkey -in pelda.hu.key -pubout | openssl sha256
Ha eltér, a kulcs egy másik tanúsítványhoz (például egy korábbi CSR-hez) tartozik. Ilyenkor a cPanel sem engedi telepíteni a tanúsítványt. Keresse meg a helyes kulcsot, vagy készítsen új kulcsot és CSR-t, és állítsa ki újra a tanúsítványt.
A lejárat ellenőrzésének további módjairól a Hogyan ellenőrizhetem, mikor jár le az SSL tanúsítványom? cikk szól, a köztes tanúsítványokról pedig a Mi az a köztes tanúsítvány (CA bundle)? cikk.