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.
A 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:

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):
Egy rövid 1-2 perces futás után az eredmény megfelelő A minősítésű:

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