Alapvető műveletek az OpenSSL program segítségével

Röviden az OpenSSL-ről

Az OpenSSL ingyenes, nyílt forráskódú programcsomag (és programkönyvtár), amelynek segítségével nagyon kriptográfiai műveletek végezetők.. Az OpenSSL a www.openssl.org címről tölthető le, számos platformon elérhető, a legtöbb Linux disztribúció már eleve tartalmazza, de Windows alatt is használató.

Az alábbiakban az OpenSSL parancssoros változata segítségével mutatunk be néhány alapvető nyilvános kulcsú kriptográfiai műveletet, amelyekre szükségünk lehet, ha OpenSSL-lel  szeretnénk kulcsot generálni, tanúsítványkérelmet létrehozni.

Az OpenSSL számos más funkciót is tartalmaz, részletes dokumentációja megtalálható az www.openssl.org címen.

Kriptográfiai alapfogalmakról bővebben: https://e-szigno.hu/tudasbazis

Egy OpenSSL parancs a következő módon épül fel:

openssl parancs_neve paraméterek

Az OpenSSL általában a standard inputról olvassa a bemenetet, és a standard outputra írja a kimenetet. A bemenetet alapesetben PEM (base64 kódolt) formátumban fogadja, és PEM formátumban írja. Ha mást szeretnénk (pl. azt szeretnénk, hogy az OpenSSL szövegesen írja ki az eredményt), azt külön meg kell mondanunk.

A használható OpenSSL parancsok az

openssl help

paranccsal listázhatóak ki. Az egyes parancsok paramétereiről az

openssl parancs_neve -help

parancs segítségével kaphatunk leírást.

ECC kulcspár generálása

Egy elliptikus görbén alapuló (NIST P-256 ) kulcspár generálásához az alábbi parancsot kell kiadnunk:

openssl ecparam –out key.pem –genkey –name prime256v1

Az így létrejött key.pem fájl tartalmazza a nyilvános kulcsot és a magánkulcsot is base64 kódolással tartalmazza ezeket az adatokat.. A key.pem fájlt titokban kell tartanunk, mert tartalmazza a magánkulcsunkat. Azt javasoljuk, hogy a magánkulcsot mindig védett, lehetőleg titkosított módon tároljuk.

PKCS#10 tanúsítványkérelem létrehozása

Ha azt szeretnénk, hogy létrehozott nyilvános kulcsunkhoz a Microsec tanúsítványt bocsásson ki, akkor a nyilvános kulcsot szabványos PKCS#10 formában kell eljuttatnunk a szolgáltatóhoz. A PKCS#10 tanúsítványkérelem tartalmazza a nyilvános kulcsunkat és azt, hogy milyen adatokat szeretnénk, ha a Microsec feltüntetne rólunk a tanúsítványunkban, mely aláírt a magánkulcsunkkal, így a Microsec, mint a bizalmi szolgáltató ebből meg tudja állapítani, hogy az igénylő rendelkezik a hozzá tartozó magánkulccsal.

Ha a fenti lépések szerint már generáltunk egy kulcspárt, akkor a következő paranccsal hozhatunk létre PKCS#10 tanúsítványkérelmet a kulcspár alapján:

openssl req -new -key key.pem -sha256 -out tanusitvanykerelem.pem

A kérelem elkészítésekor az OpenSSL bekéri tőlünk a tanúsítványba kerülő adatainkat. Nem szükséges mindent kitöltenünk, egy pont (.) beírásával jelezhetjük, hogy az adott mező üres maradjon. A program elkéri az országunk kétbetűs kódját (Country Name - Magyarország esetén HU), nemzetközi szoftverről lévén szó elkéri az USA-beli állam nevét (State or Province Name - a magyar felhasználók egy pont beírásával hagyják üresen), városunk nevét (Locality - pl: Budapest), cégünk, szervezetünk nevét (Organization Name - pl. Saját Kft.), a szervezeten belüli egységünk nevét (Organizational Unit Name - pl. Számlázási Osztály), a saját nevünket (Common Name - pl. Kovács János), és az e-mail címünket (Email Address - pl. en@valahol.net). Ezt követően bekér néhány további adatot is, ezt nyugodtan hagyjuk üresen.

 

Ha webszerver tanúsítványt kérünk, akkor a Common Name mezőbe ne a saját nevünket, hanem a szerverhez tartozó domain címét adjuk meg (pl: www.e-szigno.hu).

A PKCS#10 formátumú tanúsítványkérelem a tanusitvanykerelem.pem fájlba kerül.

Ha létrejött a PKCS#10 kérelmünk, nyissuk meg bármilyen szövegszerkesztő programmal és másoljuk be a Microsec megrendelőlapján erre szolgáló mezőbe.

A bemásolandó rész a

-----BEGIN CERTIFICATE REQUEST-----

sorral kell kezdődjön és az

-----END CERTIFICATE REQUEST----- 

sor kell legyen az utolsó sora.

Tanúsítvány adatainak megtekintése

Amennyiben egy tanúsítvány adattartalmát szeretnénk megtekinteni, a következő OpenSSL parancsok lehetnek segítségünkre.

Ha a tanúsítvány PEM formátumban van (tehát base64 kódolással), akkor a következő parancsot hajtsuk végre:

openssl x509 -text -noout -in tanusitvany.pem

Amennyiben a a tanúsítvány DER kódolású, akkor a következő parancsot kell végrehajtanunk:

openssl x509 -text -noout -inform der -in tanusitvany.cer

(A cer kiterjesztés nem releváns, egyaránt tartalmazhat PEM és DER formátumú tanúsítványt.)

Átalakítás DER és PEM formátumok között

Egy DER formátumú tanúsítványunk a következő paranccsal konvertálhatjuk át PEM formátumúvá:

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

Egy PEM formátumú tanúsítványunk a következő paranccsal konvertálhatunk át DER formátumúvá:

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

Tanúsítvány és magánkulcs összeszerelése PFX fájlba

Amennyiben a Microsec kiadta a PKCS#10 kérelmünkhöz tartozó tanúsítványt, akkor a kulcspárt össze tudjuk szerelni a tanúsítvánnyal egy PFX fájlba.

A két fájlból a következő paranccsal hozhatunk létre egy PKCS#12 formátumú (PFX) fájlt, amely egyaránt tartalmazza a bizalmi szolgáltató által kibocsátott tanúsítványt és a hozzá tartozó magánkulcsot.

openssl pkcs12 -export -inkey key.pem -in tanusitvany.pem  -out tanusitvany_es_magankulcs.pfx

A fenti parancssor beírását meg kell adnunk a készítendő PFX fájl jelszavát. A PFX fájlt titokban kell tartanunk, mert a magánkulcsunkat is tartalmazza, ezért célszerű jelszóval védve, titkosított formában tárolni. Ezt követően valószínüleg már csak a PFX fájlra lesz szükségünk, így a magánkulcsunkat tartalmazó key.pem fájlt célszerű megsemmisítenünk.

Sok, a magánkulcsunkat is használó szoftvernek, együtt kell megadnunk a tanúsítványt és a magánkulcsot, gyakran PFX formátumban.

Kriptográfiai lenyomat képzése

OpenSSL segítségével kriptográfiai lenyomatot is képezhet egy fájlról. Ha a lenyomatot SHA-256 algoritmus segítségével szeretné létrehozni:

openssl dgst -sha256 < dokumentum.doc

A program alapesetben base64 kódolással írja ki a lenyomatot, amely pl. így nézhet ki:

f423871f6939c650d9aea5f833a156e050a3130f5050c67474177d21cbac61f9

RSA 3072 bites kulcspár előállítása

Habár az RSA helyett már napjainkban mindig az ECC ajánlott, nagyobb kulcsméretekkel még az RSA tovább használható.

A kulcsgenerálás a következő paranccsal tehető meg:

openssl genrsa -passout pass:<jelszó> -aes256 -out key.pem 3072

A parancsban megadott jelszó fogja védeni (titkosítani) a kulcsot.

PKCS#10 kérelem készítése:

openssl req -new -key key.pem -out tanusitvanykerelem.pem -passin pass:<jelszó>

A parancsban megadott jelszó a kulcsot védő jelszó.

 

Kulcs és tanúsítvány összeszerelése:

openssl pkcs12 -export -inkey key.pem -in tanusitvany.pem -passin pass:<jelszó> -out tanusitvany_es_magankulcs.pfx -passout pass:<pfx_jelszó>

A parancsban megadott jelszó a kulcsot védő jelszó.

A parancsban megadott PFX jelszó fogja védeni a PFX fájlt.

 

 

Bejegyzés részletei
Bejegyzés azonosító 106
Kategória SSL tanúsítványok
Hozzáadás dátuma 2019-09-25 11:20:18
Megtekintések száma 4631