Ssl Certificate Gyártás

Hogyan kell önaláírt SSL tanúsítványt csinálni?

A publikus kulcsú titkosítás gyakori jelenség az interneten. Az SSL (és a TLS, ami az utódja) igazából két dologért felel:

  1. Azért, hogy a felhasználó megbizonyosodjon arról, hogy a szerver tényleg az, aminek mondja magát.
  2. Azért, hogy a felhasználó és a szerver közötti kapcsolat ne legyen lehallgatható, és

Példa: online bank ügyintézés.

  1. Amikor belépek a bank weboldalára, akkor nem szeretném, ha véletlenül egy imposztor úgy tegyen, mintha a bankom lenne, és én megadjam neki a belépéshez szükséges adatokat.
  2. Amikor belépek a bankba, akkor nem szeretném, hogy más lehallgassa a belépéshez szükséges adataimat, banki titkaimat, stb.

Az előbbi látszólag triviális: megnézem, hogy a böngészőm címsorában pl www.cib.hu van-e. Na de, sajnos nem ilyen egyszerű ez a nyamvadt élet: egyrészt lehet, hogy valaki a Vad Interneten megvágja a kábelt, beáll közém és a bank szervere közé, és a bank nevében válaszolgat. Sőt: az is előfordulhat, hogy a DNS-be piszkálnak bele (Domain Name Service, vagyis hogy a www.cib.hu végülis hol van), és eltérítenek a valódi www.cib.hu-tól egy rosszszándékú szerver irányába.

Nos, ezeknek a problémáknak (meg még néhány másiknak) a legyőzésére találták ki az SSL tanúsítványokat. Ezek egyszerre bizonyítják azt, hogy a www.cib.hu az, aminek mondja magát, és egyben a kriptografikus csatornát is lehetővé teszik. Az SSL tanúsítványt az ellenőrzés céljából egy úgynevezett Certificate Authority (tanúsítvány kiállító cég) digitálisan "aláírja". Így nem kell a www.cib.hu-nak elhinnem, hogy ő tényleg az; csupán azt kell elhinnem, hogy a Certificate Authority nem írná alá egy imposztor SSL kulcsát. (Amire pedig volt már példa, de ez most más történet.)

Jójó, de mi az hogy önaláírt tanúsítvány?

Ugye az SSL tanúsítvány megoldás egy problémára, ellenben ő maga is szül egy problémát: a tanúsítványt alá kell iratni a már említett Certificate Authority cégek egyikével. Ez idő, pénz és macera, ami közül egyikhez sem fűlik a fogam. Ráadásul, nem valószínű hogy valaki pont az apocalypse.rulez.org-ot akarná megszemélyesíteni, ugyanis szemben a bankokkal, itt igen kicsi a várható pénzbevétel.

Magyarán, az SSL áldásaiból csak a titkosítást szeretném, a bizonyításra nincs szükség.

Ilyenkor van az, hogy az ember saját maga írja alá önmaga SSL "tanúsítványát". Ettől a legtöbb böngésző vagy levelező progi berzenkedik: azt fogja mondani, hogy a tanúsítvány aláírójában ő nem bízik meg személy szerint. Hát ez van: a user rákattint arra, hogy azért menjen tovább a műsor, és ennyi.

Tanúsítvány készítése

Na végre! Először is, csinálni kell egy kamu Certificate Authority-t. Ez a következő parancsokkal lehetséges:

A tanúsítvány két részből áll: a kulcsból (key),

 openssl genrsa -out apocalypse_certificate_authority.key 1024
és a tanúsítványból (certificate)
 openssl req -new -x509 -days 3650 -key apocalypse_certificate_authority.key -out apocalypse_certificate_authority.crt

Ezzel a kamu Certificate Authority-nk kész is van, már alá is írhatunk vele bármit, csak még nincs mit aláírnunk. Most megcsináljuk azt is, először a kulcsot:

 openssl genrsa -out apocalypse.rulez.org.key 1024

A kulcshoz kell csinálunk egy CSR (Certificate Signing Request) file-t, amit normális esetben egy valódi Certificate Authority-nek küldünk el. Ebben írjuk le, hogy kik is vagyunk mi, mi a nevünk, hol élünk, stb. Az ebben található információt a Certificate Authority leellenőrzi, és ha hihetőnek találja, akkor szépen a saját Nagy Erejű Kulcsával aláírja majd nekünk a kulcsunkat. A CSR-ben több mező található, ebből a legfontosabb a Common Name: ezt a szerver nevet fogja majd a tanúsítványunk.... tanúsítani

 openssl req -new -key apocalypse.rulez.org.key -out apocalypse.rulez.org.csr

Végül nagyvonalúan aláírjuk magunknak a saját kulcsunkat:

 openssl x509 -req -days 3650 -sha1 -CAcreateserial \
-in apocalypse.rulez.org.csr \
-CA apocalypse_certificate_authority.crt \
-CAkey apocalypse_certificate_authority.key \
-out apocalypse.rulez.org.crt

Ha pedig a web szervernek teszemazt .pem file kell, akkor az utolsó simítás:

 cat apocalypse.rulez.org.crt apocalypse.rulez.org.key > apocalypse.rulez.org.pem

És már kész is van! Most már meg tudod csinálni 5 perc alatt, amin én másfél órát szenvedtem...


InfoTéma
Tagek: