Ingyen tanúsítvány
Ez a szócikk arról szól, hogyan lehet a böngészők által elfogadott tanúsítványt szerezni magán vagy kisvállalati webszerver https protokolljához ingyen.
A https elméleti alapjait és veszélyeit részletesen leírja a Wikipédia szócikke. Itt a szócikk „Tanúsítványkérelem előállítása” című fejezetét részletezzük.
A tanúsítványkérelmet interneten keresztül a Let's Encrypt tanúsítóhelyhez nyújtjuk be, mely a Mozilla támogatásával alakult és működik. A tanúsítványt csak három hónapra kapjuk – ez az egyetlen hátránya az ingyenességnek. A tanúsítvány titkos kulcsát mi generáljuk, és nem áruljuk el a Let's Encrypt-nek sem.
A tanúsítóhely meg kell győződjék arról, hogy a kérelem benyújtója valóban tulajdonosa a kérelembeli webhelynek (hiszen éppen ezt tanúsítja). A Let's Encrypt ennek bizonyítására több módot ad; mi azt választjuk, hogy feltesszük a Let's Encrypt által előállított két weblapot a webszervernek arra a helyére, ahová a Let's Encrypt kéri.
A tanúsítványkérelem előállítása
[szerkesztés]Az openssl parancsot használjuk, mely a legtöbb operációs rendszerben megtalálható. Miután gyakran kell tanúsítványkérelmet előállítani, érdemes egy kicsit automatizálni: egy konfigurációs fáljba összegyűjteni a nem változó adatokat. Példa konfigfájl:
[req] default_bits = 2048 # a kulcs hossza (bit) prompt = no # nem-interaktív mód default_md = sha256 req_extensions = req_ext # a CSR-kiterjesztések listájának fejezetcíme distinguished_name = dn # az URL elsődleges nevének fejezetcíme [ dn ] C=HU # országkód L=Budapest # város CN = www.gyimesilaszlo.hu # elsődleges URL [ req_ext ] subjectAltName = @alt_names # az alternatív nevek fejezetneve [ alt_names ] DNS.1 = gyimesilaszlo.hu # 1. név DNS.2 = www.gyimesilaszlo.hu # 2. név
A fenti példafájlban a CN és a két DNS-értéket kell módosítani. A többneves kiterjesztés használata kötelező egy név esetén is. IP-címet nem lehet megadni, mert az aláíráskor hibát jelez a Let's Encrypt.
Ezután egyetlen utasítással tudunk kulcsot és tanúsítványkérelmet előállítani:
openssl req -new -sha256 -nodes -out gyimesilaszlo.csr -newkey rsa:2048 -keyout gyimesilaszlo.key -config konfigfájl
A kérelem a gyimesilaszlo.csr, a titkos kulcs a gyimesilaszlo.key nevű fáljban keletkezett.
A kérelem benyújtása
[szerkesztés]A https://www.sslforfree.com/ lapon a https:// feliratú mezőbe beírjuk a weblap elsődleges címét: www.gyimesilaszlo.hu. Kattintunk a Create Free SSL Certificate gombon. A három megjelenő nyomógomb közül a középsőt választjuk: Manual Verification. A lap alján megjelenik a Manually Verify Domain gomb. Rákattintunk. A lap alján újabb információ jelenik meg.
Az 1. pontban két letölthető fájlt látunk. Ezt kell a weblapunkra feltölteni a https document root alatti .well-known/acme-challenge/ alkönyvtárba. Az 5. pontban ellenőrizhetjük, hogy sikerült-e a feltöltés.
Ezután a lap alján bejelöljük a I have my own CSR checkboxot. Megjelenik egy kitöltendő mező: copy&paste-tel bemásoljuk a tanúsítványkérelmet, majd a fölötte levő Download SSL Certificate gombra kattintunk.
A tanúsítvány letöltése
[szerkesztés]Némi gondolodás után új weblap jelenik meg Certificate Successfully Generated címmel. A Download All SSL Čertificate Files gombbal letöltjük a generált tanúsítványt. A letöltött fájl neve sslforfree.zip, és három fájlt tartalmaz:
- ca_bundle.crt: a tanúsítóhely (Let's Encrypt) tanúsítványa
- certificate.crt: a generált tanúsítvány
- private.key: információ, hogy nem a Let's Encrypt állította elő a titkos kulcsot, hanem mi. Vagyis ő nem tudja.
A tanúsítvány feltöltése a webszerverre
[szerkesztés]A fenti fájlokat fel kell tölteni a és megadni a webszerver apache konfigjában (debianban a /etc/apache2/sites-enabled könyvtárban, az ssl konfigurációs fáljban):
SSLEngine on SSLCertificateFile /etc/ssl/private/20180716/certificate.crt SSLCertificateKeyFile /etc/ssl/private/20180716/gyimesilaszlo.key SSLCertificateChainFile /etc/ssl/private/20180716/ca_bundle.crt
A középső fájl a titkos kulcs. Mi generáltuk a tanúsítványkérelemmel együtt.
A változtatások után: systemctl restart apache2
.
Ellenőrzés: böngészőben https://www.gyimesilaszlo.hu, az URL-sorban a lakat ikonra kattintva. Secure Connection > → More Information → View Certificate.
Forrás
[szerkesztés]- How to create a CSR with OpenSSL. SWITCH (Hozzáférés: 2018. júl. 21.)