Német Krisztián

SSL tanúsítvány beállítása Rocky Linux 9 linux rendszeren, Apache webszerverrel
A Let’s Encrypt egy ingyenes, automatizált és nyílt tanúsítványszolgáltató, amelyet az Internet Security Research Group (ISRG) fejlesztett ki. A Let’s Encrypt által kiadott tanúsítványok minden nagyobb böngészőben megbízhatóak, és a kibocsátástól számított 90 napig érvényesek. Ez a bejegyzés elmagyarázza, hogyan telepítheted az ingyenes Let’s Encrypt SSL-tanúsítványt Rocky Linux 9 rendszeren, ha Apache a webszervered. A tanúsítványok […]

A Let’s Encrypt egy ingyenes, automatizált és nyílt tanúsítványszolgáltató, amelyet az Internet Security Research Group (ISRG) fejlesztett ki.

A Let’s Encrypt által kiadott tanúsítványok minden nagyobb böngészőben megbízhatóak, és a kibocsátástól számított 90 napig érvényesek.

Ez a bejegyzés elmagyarázza, hogyan telepítheted az ingyenes Let’s Encrypt SSL-tanúsítványt Rocky Linux 9 rendszeren, ha Apache a webszervered. A tanúsítványok beszerzéséhez és megújításához a certbot eszközt fogjuk használni.

Előfeltételek

Mielőtt nekikezdünk győzödjünk meg arról, hogy az alábbi feltételek adottak-e:

  • Szükséges egy bejegyzett domainnév (golinux.hu), amely publikus IP-re muatat (159.223.9.239).
  • Az Apache webszerver telepítve van és fut a szerveren. Létezik a szerveren a domain-hez rendelt virtualhost.
  • A helyi tűzfalon engedélyezve van a TCP 80 (HTTP) és a TCP 443 (HTTPS) portok.
  • EPEL repo elérhető-e a szerveren, mert a certbot csomag ott lesz.

Ha nincs EPEL repo így tudod telepíteni:

dnf install epel-release

A követjező csomagok telepítése szükséges a megfelelő tanúsítvány és SSL kezeléshez:

dnf install mod_ssl openssl

A certbot csomag telepítése

A Certbot egy ingyenes parancssori eszköz, amely leegyszerűsíti a Let’s Encrypt SSL-tanúsítványok megszerzésének és megújításának folyamatát, valamint a HTTPS automatikus engedélyezését a szerveren.

A certbot csomag nem található meg a hivatalos CentOS8 repoban, csak a EPEL-ben.

dnf install certbot python3-certbot-apache

Tanúsítványok beszerzése

Most , hogy rendelkezésünkre áll a certbot szerezzük be az SSL tanúsítványt.

certbot a Let’s Encrypt kliens használatával az SSL tanúsítvány létrehozásának a lépései automatizálhatóak. Az ügyfél automatikusan beszerez és telepít egy új SSL-tanúsítványt, amely érvényes a paraméterként megadott tartományokra.

certbot --apache -d golinux.hu

Ha egy domain-nal rendelkezünk akkor elég lenne ezt a parancsot kiadni, de ha rendelkezünk aldomain-nal és aliasokkal, akkor a -d -vel tudunk több tartományt megadni (www.golinux.hu, oktatas.golinux.hu).

Jelen esetben én megkérem a golinux.hu és a www.golinux.hu tartományokra, mert szeretném majd átirányítani a http://golinux.hu-t a https://golinux.hu-ra és a www.golinux.hu-t a https://golinux.hu-ra.

certbot --apache -d golinux.hu -d www.golinux.hu

Első lépésként egy érvényes e-mail címet kell megadni, ha először regisztráljuk a domain-t, akkor létrehoz egy account-ot és a felhasználási feltételeket is el kell fogadni, tehát két Y-t kell nyomnunk.

A tanúsítványok a /etc/letsencrypt/live/golinux.hu/ könyvtárban lesznek. Érdemes ellenőrizni őket.

ll /etc/letsencrypt/live/golinux.hu//etc/letsencrypt/live/golinux.hu/
lrwxrwxrwx. 1 root root  34 Sep 18 11:41 cert.pem -> ../../archive/golinux.hu/cert.pem
lrwxrwxrwx. 1 root root  35 Sep 18 11:41 chain.pem -> ../../archive/golinux.hu/chain.pem
lrwxrwxrwx. 1 root root  39 Sep 18 11:41 fullchain.pem -> ../../archive/golinux.hu/fullchain.pem
lrwxrwxrwx. 1 root root  37 Sep 18 11:41 privkey.pem -> ../../archive/golinux.hu/privkey.pem
-rw-r--r--. 1 root root 692 Sep 18 11:41 README

Most, hogy a tanúsítványok letöltése, telepítése és betöltése megtörtént, ellenőrizhetjük az SSL-tanúsítvány állapotát, hogy megbizonyosodjunk arról, hogy minden rendben működik.

Ellenőrizzük a megfelelő működést

Nyissuk meg böngészőben a golinux.hu oldalt:

golinux.hu oldal érvényes SSL tanúsítvánnyal

A bekarikázott lakatra kattintva tudjuk ellenőrizni, hogy van-e tanúsítvány a weboldalhoz, ki állította ki és meddig érvényes. Arra figyeljünk, hogy a Let’s Encrypt csak 90 napig! De a következő részben áthidaljuk ezt a problémát is.

Még egy tesztet el tudunk végezni. Ez a Qualys felhőbiztonsági cég SSL kiszolgálótesztjének használatával kideríthetjük, hogy a Certbot megfelelően hozta létre az SSL-tanúsítványt . Írjuk be a böngészőnk címsorába (a golinux.hu helyett itt mindenki a saját domain nevét írja be):

https://www.ssllabs.com/ssltest/analyze.html?d=golinux.hu

Egy rövid 1-2 perces futás után az eredmény megfelelő A minősítésű:

golinux.hu SSL riportja

Ha többet szeretnél megtudni arról, hogy az SSL Labs hogyan határozza meg ezeket az osztályzatokat, nézd meg az SSL Labs Grading bejegyzést, amely részletezi az osztályozási rendszer 2018 januárjában végrehajtott frissítéseit.

Miután telepítetted és ellenőrizted az SSL tanúsítványt, a következő lépés a tanúsítvány automatikus megújításának beállítása, hogy a tanúsítvány érvényes maradjon.

A tanúsítvány megújítása

A Let’s Encrypt tanúsítványok 90 napig érvényesek, de visszavonás vagy egyéb probléma esetén ajánlott naponta kétszer ellenőrizni a megújítást. Emiatt a legjobb gyakorlat a folyamat automatizálása.

Először is vizsgáljuk meg a tanúsítvány megújításához használt parancsot. A certbot Let’s Encrypt kliens rendelkezik egy olyan renew paranccsal, amely automatikusan ellenőrzi az aktuálisan telepített tanúsítványokat, és megpróbálja megújítani őket, ha kevesebb, mint 30 nap van hátra a lejárati dátumig. Az --dry-run opció használatával szimulációt futtathatsz a feladatról, hogy tesztelje, hogyan renew megfelelően működik-e:

certbot renew --dry-run
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/golinux.hu.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Account registered.
Simulating renewal of an existing certificate for golinux.hu and www.golinux.hu
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations, all simulated renewals succeeded:
  /etc/letsencrypt/live/golinux.hu/fullchain.pem (success)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Itt picit félreérthető a kimenet, mert ha több tartományt tartalmazó kötegelt tanúsítványt hoztunk létre, akkor csak az alap tartománynév jelenik meg a kimenetben, de a megújítás az ebben a tanúsítványban szereplő összes tartományra érvényes lesz. (golinux.hu és a www.golinux.hu-ra is.)

A tanúsítványok lejáratának elkerülése érdekében egy cron-feladatot kell létrhozni, amely időnként végrehajtja az automatikus megújítási parancsot.

A tanúsítványt érdemes napi kétszer ellenőrizni. Ez biztosítja, hogy abban az esetben, ha a Let’s Encrypt tanúsítvány visszavonást kezdeményez, legfeljebb fél nap teljen el a Certbot megújítása előtt. A dokumentáció azt javasolja, hogy használja a következő parancsot egy megfelelő cron feladat hozzáadásához a /etc/crontab fájlhoz:

echo "0 0,12 * * * root python3 -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q" | tee -a /etc/crontab > /dev/null

Ezzel egy új cron-feladat jön létre, amely minden nap délben és éjfélkor fog végrehajtani ( 0 0,12 * * *). Ezután lefuttatja a rövid python3 szkriptet, amely nulla és hatvan perc közötti véletlenszerű ideig szünetel. Ez a Let’s Encrypt szervereinek terhelésének csökkentése érdekében javasolt.

A python szkript kilépése után a tényleges certbot renew parancs fut.

Összefoglalás

Ebben a bejegyzésben arról beszéltünk, hogyan használhatod a Let’s Encrypt kliens certbotot a Rocky Linux 9 linux rendszeren, hogy SSL-tanúsítványokat szerezz be a domainjeidhez. Azt is bemutattam, hogyan konfiguráld az Apache-t a tanúsítványok használatára, és hogyan állíts be egy cronjob-ot az automatikus tanúsítványmegújításhoz.

Ha többet szeretnél megtudni a Certbot szkriptről, keresd fel a Certbot dokumentációját 

Ezek is érdekesek lehetnek számodra