OpenSSL alapok - exportálás, importálás, formátumok átalakítása.

2018. jún. 12. | Pataki Tamás

Az SSL-tanúsítványok minden platformon elterjedtek, és időről időre szükség van a tanúsítvány átvitelére a szerverek között, vagy más módon kell vele dolgozni. A GeoTrust és a RapidSSL tanúsítványok tulajdonosai korlátlan számú szerveren használhatják tanúsítványukat, így a tanúsítvány-átalakítási útmutató minden bizonnyal jól jön majd.

```html

PFX (PKCS#12) tanúsítvány kezelése

A PFX formátum (pontosabban PKCS#12) a Microsoft platformokon arra szolgál, hogy a bináris tanúsítványt a privát kulccsal és közbenső tanúsítványokkal tároljuk. Gyakorlatilag Windows és Microsoft szervereken találkozhat vele, amikor tanúsítványt importál vagy exportál.

PFX (P12) fájl létrehozása OpenSSL-ben

PFX fájlt OpenSSL-ben például akkor hozhat létre, amikor tanúsítványt visz át egy Linux szerverről egy Microsoft szerverre.

openssl pkcs12 -export -out kimenet.pfx -inkey privátkulcs.key -in tanusitvany.cer -certfile közbenső.pem

A tanúsítvány privát kulccsal való kombinálásával kap egy PFX fájlt. Ha további tanúsítványokat, például Intermediate-t szeretne hozzáadni, megteheti az -in paraméterrel; például -in intermediate.cer

Kulcsok exportálása PFX-ből

Ha az SSL tanúsítványt PFX formátumban másik szerverre kívánja áthelyezni, akkor a PFX-ből ki kell exportálni a privát kulcsot és a tanúsítványt. Gyakran a tanúsítvány áthelyezése Microsoft szerverről Linux szerverre történik, mivel a GeoTrust (és RapidSSL) korlátlan tanúsítványlicence nem korlátozza a tanúsítvány használatát több szerveren.

Az "összes", tehát a privát kulcs exportálása a következő paranccsal történik:

openssl pkcs12 -in file.pfx -out file.pem -nodes

Az eredmény egy áttekinthető PEM fájl az összes tanúsítvánnyal, amely a PFX-ben volt. A végén van az íratlan privát kulcs, amelyet a -nodes paraméter biztosít (nincs DES).


A tanúsítványok tárolására használt formátumok

A tanúsítványok között használt formátumokkal való alapvető eligazodáshoz rövid áttekintést nyújtok. Általában a fájlkiterjesztés nem határozza meg a tanúsítvány formátumát; a fájl tartalma a fontos.

Tanúsítványokkal bináris vagy szöveges (Base64) formában dolgozhat. Az egyik vagy másik formátumban van-e a tanúsítvány, felismerhető a kiterjesztés vagy a fájltartalom alapján, amelyet például a Notepad-ban megnyithat.

PEM formátum

A leggyakrabban használt formátum. A tanúsítvány szöveges formában, Base64 (ASCII karakterek) formátumban van és ebben a formában tanúsítja a tanúsító hatóságokat, ugyanabban a formátumban, amelyet e-mailben kap az SSLmarketből. A tanúsítványt a "-----BEGIN CERTIFICATE-----" és "-----END CERTIFICATE-----" karakterlánc öleli körül, amely része a tanúsítványnak.

Az Apache szerver (és sok más) PEM tanúsítványokat használ; a tanúsítvány és a privát kulcs egyazon fájlban lehet tárolva. A PEM formátum jellemzően kiterjesztéseket használ, mint például .pem, .crt, .cer, és .key.

DER formátum

A korábbi típustól eltérően a DER formátum bináris. A Notepad-ban megnyitva nem láthat semmi "értelmeset". Gyakran használják Java platformokon. A fájl kiterjesztése .der vagy .cer.

PKCS#7 vagy P7B formátum

Ez a formátum ismét Base64 és ASCII karaktereket használ, egy fájlban több tanúsítvány található, szemben a PEM formátummal. Tartalmazza a tanúsítványt és a közbenső tanúsítványait, de a privát kulcsot nem.

Ennek a formátumnak a szokásos kiterjesztései a .p7b és .p7c. Főként a Microsoft platformokon és Tomcat-en találkozhat velük.

PKCS#12 vagy PFX

Mint fentebb említettük, ez a formátum a tanúsítványt a privát kulccsal együtt, valamint esetleg a lánc egyéb tanúsítványait (Intermediate tanúsítványok) tárolja. Egy fájlba minden, amire szüksége van a tanúsítvány működtetéséhez, tárolva van. A formátum bináris, amelyet főként Windows és Microsoft Szervereken használnak. Jellemző kiterjesztések a .pfx vagy .p12.


SSLMARKET AJÁNLJA

Tanúsítvány konverzió különböző formátumok között

A következő parancsokat használja az OpenSSL-ben a tanúsítvány más formátumba való konvertálásához.

PEM tanúsítvánnyal dolgozás

A PEM formátum a tanúsítványt szöveges formában Base64 formátumban tárolja. Ez a leguniverzálisabb és leggyakrabban használt formátum.

PEM konvertálása DER-re

A Base64 szöveges tanúsítványt binárissá változtatja.

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

PEM konvertálása P7B-re

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

PEM konvertálása PFX-re

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

DER tanúsítvánnyal dolgozás

DER egy bináris tanúsítvány formátum. Nem használhatja szöveges formában (nem másolhatja e-mailbe, stb.).

DER konvertálása PEM-re

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

P7B tanúsítvánnyal dolgozás

A P7B formátum több tanúsítványt tartalmaz, de nem tartalmaz privát kulcsot. Például tanúsítványlánc tárolására használják.

P7B konvertálása PEM-re

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

P7B konvertálása PFX-re

Először a P7B-ből exportálja a tanúsítványt:

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

Ezután hozzáteszi a privát kulcsot (.key) és közbenső tanúsítványokat (CACert.cer) és összefogja őket egy PFX-be:

openssl pkcs12 -export -in tanusitvany.cer -inkey privátkulcs.key -out tanusitvany.pfx -certfile CACert.cer

PFX tanúsítvánnyal dolgozás

A PFX formátum tartalmazza a tanúsítványt és a jelszó által védett privát kulcsot. A tanúsítvány használatakor ismernie kell és meg kell adnia ezt a jelszót az OpenSSL-ben.

PFX konvertálása PEM-re

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

A tanúsítvány és a privát kulcs egyetlen PEM fájlba van tárolva, amelyből kimentheti őket.

 

Referenciák:

http://www.openssl.org/docs/apps/openssl.html

https://www.sslshopper.com/ssl-converter.html

```html
Pataki Tamás
Biztonságos SSL tanúsítványok szakértője
Symantec Sales Expert Plus
e-mail: pataki(at)zoner.hu