Hogyan szerezzünk Let’s Encrypt SSL-tanúsítványokat a Certbot CloudFlare DNS-ellenőrzéssel

Hogyan Szerezzunk Let S Encrypt Ssl Tanusitvanyokat A Certbot Cloudflare Dns Ellenorzessel



A Certbot egy ACME kliens a Let’s Encrypt tanúsító hatósághoz (CA). Let’s Encrypt SSL tanúsítvány generálására és automatikus megújítására szolgál. Alapértelmezés szerint a Certbot a Let’s Encrypt HTTP-01 kihívást használja a tartomány tulajdonjogának ellenőrzésére és SSL-tanúsítvány kiadására a tartományhoz. A HTTP-01 kihívás azonban nem fog működni, hacsak nincs nyilvános IP-címe, és számítógépe elérhető az internetről. Tehát, ha a Let’s Encrypt SSL-tanúsítványokat szeretné használni otthoni hálózatához vagy magánhálózatához, akkor inkább a DNS-01 kihívást kell használnia. A DNS-01 kihívás használatakor a Let’s Encrypt a tartomány DNS-kiszolgálója segítségével ellenőrzi a tartomány tulajdonjogát. Tehát magánhálózatokon is működik.

A Let’s Encrypt DNS-01 kihívás (vagy DNS-ellenőrzés) működésével kapcsolatos részletes magyarázatért olvassa el a Mi az a Let’s Encrypt DNS-01 Challenge és hogyan kell használni az SSL-tanúsítványok beszerzéséhez című cikket.

Ebben a cikkben bemutatjuk, hogyan használhatja a Let’s Encrypt DNS-ellenőrzést, hogy SSL-tanúsítványt kapjon domainnevéhez a Certbot és a Certbot CloudFlare DNS-bővítmény használatával.







Tartalom témája:

  1. Domain kezelése CloudFlare DNS-sel
  2. A Certbot és a Certbot CloudFlare beépülő modul telepítése Ubuntu/Debian rendszeren
  3. A Certbot és a Certbot CloudFlare beépülő modul telepítése a Fedorán
  4. A Certbot és a Certbot CloudFlare beépülő modul telepítése RHEL/AlmaLinux/Rocky Linux/CentOS Stream rendszeren
  5. Annak ellenőrzése, hogy a Certbot és a Certbot CloudFlare beépülő modul megfelelően telepítve van-e
  6. CloudFlare API token generálása
  7. A CloudFlare API token biztonságos tárolása a számítógépen/szerveren
  8. SSL-tanúsítvány generálása a Certbot CloudFlare DNS-ellenőrzés segítségével
  9. Az SSL-tanúsítványok titkosítása Certbot használatával
  10. A Let’s Encrypt SSL-tanúsítványok megújítása Certbot használatával
  11. Következtetés
  12. Hivatkozások

Domain kezelése CloudFlare DNS-sel

Ahhoz, hogy a Let’s Encrypt SSL-tanúsítványt a CloudFlare DNS-ellenőrzéssel kapja meg, CloudFlare-fiókkal kell rendelkeznie, és domainjének a CloudFlare DNS-t kell használnia. tudsz hozzon létre ingyenes CloudFlare-fiókot és a CloudFlare DNS szolgáltatás is ingyenesen használható.



Domainjének CloudFlare DNS segítségével történő kezeléséhez tegye a következők egyikét:



  • Regisztrálja domainjét a CloudFlare szolgáltatásból
  • Vigye át domainjét a CloudFlare szolgáltatásba
  • Módosítsa a domainnév DNS-névszerverét CloudFlare DNS-névszerverre a domainregisztrátor irányítópultján

Nem kell domaint vásárolnia a CloudFlare-től, vagy nem kell domaint átvinnie a CloudFlare-be, hogy kezelje azt a CloudFlare DNS-szolgáltatással. Csak módosíthatja a domain névszerverét a CloudFlare DNS névszerverre a domain regisztrátorának irányítópultján (ahonnan vásárolta a domaint), és kezelheti a domainjét a CloudFlare szolgáltatásból. Ha további információra van szüksége a domain névszerverének CloudFlare DNS-névszerverre való módosításáról, olvassa el ezt a cikket.





A Certbot és a Certbot CloudFlare beépülő modul telepítése Ubuntu/Debian rendszeren

A Certbot és a Certbot CloudFlare bővítmény elérhető az Ubuntu/Debian hivatalos csomagtárában. Tehát nagyon egyszerűen telepítheti őket Ubuntu/Debianra.

Először frissítse az APT csomagtár gyorsítótárát a következő paranccsal:



$ sudo találó frissítés

  Képernyőkép egy számítógépről Leírás automatikusan generálva

A Certbot és a Certbot CloudFlare DNS-bővítmény telepítéséhez futtassa a következő parancsot:

$ sudo alkalmas telepítés certbot python3-certbot-dns-cloudflare

A telepítés megerősítéséhez nyomja meg az „Y” gombot, majd nyomja meg a gombot .

A Certbot és a Certbot CloudFlare DNS beépülő modul telepítése folyamatban van. Eltart egy ideig, amíg elkészül.

Ezen a ponton telepíteni kell a Certbot és a Certbot CloudFlare DNS-bővítményt.

A Certbot és a Certbot CloudFlare beépülő modul telepítése a Fedorán

A Certbot és a Certbot CloudFlare bővítmény elérhető a Fedora hivatalos csomagtárában, és nagyon egyszerűen telepíthető a Fedorára.

Először frissítse a DNF-csomag adatbázist a következő paranccsal:

$ sudo dnf makecache

  Képernyőkép egy számítógépről Leírás automatikusan generálva

A Certbot és a Certbot CloudFlare DNS-bővítmény Fedorán való telepítéséhez futtassa a következő parancsot:

$ sudo dnf telepítés certbot python3-certbot-dns-cloudflare

A telepítés megerősítéséhez nyomja meg az „Y” gombot, majd nyomja meg a gombot .

  Képernyőkép egy számítógépről Leírás automatikusan generálva

A Certbot és a Certbot CloudFlare DNS-bővítmény telepítése folyamatban van. Eltart egy ideig, amíg elkészül.

  Automatikusan generált számítógépes program Leírás képernyőképe

Ezen a ponton a Certbot és a Certbot CloudFlare DNS beépülő modult telepíteni kell a Fedorára.

  Képernyőkép egy számítógépről Leírás automatikusan generálva

A Certbot és a Certbot CloudFlare beépülő modul telepítése RHEL/AlmaLinux/Rocky Linux/CentOS Stream rendszeren

A Certbot CloudFlare DNS-bővítmény nem érhető el az RHEL/AlmaLinux/Rocky Linux/CentOS Stream hivatalos csomagtárolóiban. A Certbot CloudFlare DNS-bővítmény elérhető az EPEL csomagtárában. Engedélyezheti az EPEL csomagtárat az RHEL/AlmaLinux/Rocky Linux/CentOS Streamen, és onnan telepítheti a Certbot CloudFlare DNS-bővítményt.

Miután engedélyezte az EPEL csomagtárat, frissítse a DNF-adatbázis gyorsítótárát a következő paranccsal:

$ sudo dnf makecache

  Képernyőkép egy számítógépről Leírás automatikusan generálva

Ezután telepítse a Certbot és a Certbot CloudFlare DNS-bővítményt RHEL/AlmaLinux/Rocky Linux/CentOS Stream rendszerére a következő paranccsal:

$ sudo dnf telepítés certbot python3-certbot-dns-cloudflare

A telepítés megerősítéséhez nyomja meg az „Y” gombot, majd nyomja meg a gombot .

  Képernyőkép egy számítógépről Leírás automatikusan generálva

A Certbot és a Certbot CloudFlare DNS beépülő modul telepítése folyamatban van. Eltart egy ideig, amíg elkészül.

  Képernyőkép egy számítógépről Leírás automatikusan generálva

Az EPEL adattár GPG kulcsának elfogadásához nyomja meg az „Y” gombot, majd nyomja meg a gombot .

  Képernyőkép egy számítógépről Leírás automatikusan generálva

Ezen a ponton telepíteni kell a Certbot és a Certbot CloudFlare DNS-bővítményt.

  Képernyőkép egy számítógépről Leírás automatikusan generálva

Annak ellenőrzése, hogy a Certbot és a Certbot CloudFlare beépülő modul megfelelően telepítve van-e

Annak ellenőrzéséhez, hogy a Certbot telepítve van-e a számítógépen, futtassa a következő parancsot:

$ certbot --változat

Ha a Certbot telepítve van, a parancsnak ki kell nyomtatnia a telepített Certbot verziószámát a számítógépen.

Amint látja, a Certbot 2.1.0 telepítve van a Debian gépünkön.

  Képernyőkép egy számítógépről Leírás automatikusan generálva

Annak ellenőrzéséhez, hogy a Certbot CloudFlare DNS-bővítmény telepítve van-e a számítógépen, futtassa a következő parancsot:

$ sudo certbot bővítmények

Ha a Certbot CloudFlare DNS-bővítmény telepítve van, a „dns-cloudflare”-t meg kell találnia a bővítmények listájában, ahogy az a következő képernyőképen látható:

  Képernyőkép egy számítógépről Leírás automatikusan generálva

CloudFlare API token generálása

A tartomány tulajdonjogának ellenőrzéséhez a Certbotnak hozzá kell adnia egy TXT rekordot a CloudFlare DNS-kiszolgáló által kezelt tartományhoz. Ehhez a Certbotnak hozzá kell férnie a CloudFlare API tokenhez. A CloudFlare irányítópultjáról létrehozhat API-tokkent a domainjéhez.

Először jelentkezzen be CloudFlare-fiókjába. Ezután kattintson a profil ikonjára

> A profilom az oldal jobb felső sarkából.

Keresse meg az „API-tokenek” részt [1] és kattintson a „Token létrehozása” gombra [2] .

  Képernyőkép egy számítógépről Leírás automatikusan generálva

Kattintson a „Sablon használata” elemre a „Zóna DNS szerkesztése” részben.

  Képernyőkép egy számítógépről Leírás automatikusan generálva

Az „Engedély” részben engedélyezze a „Szerkesztés” engedélyt a „DNS-zóna” számára a megjelölt opciók kiválasztásával a legördülő menükből.

  Képernyőkép egy számítógépről Leírás automatikusan generálva

Ha több tartományt kezel a CloudFlare segítségével, engedélyezheti egy „Speciális zóna” módosítását a „Zóna erőforrás” részben. Ha megengedi, hogy egy API token csak egy zónát módosítson, biztonságosabb, mintha az API token az összes zónát módosítsa. Ennek az az oka, hogy ha az API token sérül, a támadási felület kisebb lesz, és kevesebb sebzés történik.

  Képernyőkép egy számítógépről Leírás automatikusan generálva

Ha egyetlen API-kulcsot szeretne használni az összes CloudFlare által felügyelt tartomány módosításához, válassza az „Összes zóna” lehetőséget a „Zóna erőforrás” részben.

  Képernyőkép egy számítógépről Leírás automatikusan generálva

Ha végzett az API token konfigurálásával, kattintson a „Tovább az összefoglalóhoz” gombra.

  Képernyőkép egy számítógépről Leírás automatikusan generálva

Megjelenik az API-tokennel a CloudFlare által kezelt domaineken végrehajtható műveletek összefoglalása. Kattintson a „Token létrehozása” gombra.

  Képernyőkép egy számítógépről Leírás automatikusan generálva

Létre kell hozni egy API tokent. Másolja az API tokent biztonságos helyre, hogy ne veszítse el. Ha elhagyja ezt az oldalt, nem fogja többé megtalálni ezt az API-tokkent. Létre kell hoznia egy új API tokent arra az esetre, ha elveszítené:

LyPCAcOBygX1UMHvcsvBFo41aItm2cCVxnjloZj5

  Képernyőkép egy számítógépről Leírás automatikusan generálva

A CloudFlare API token biztonságos tárolása a számítógépen/szerveren

A Certbotnak a CloudFlare API tokent kell használnia egy új TXT rekord hozzáadásához a domainhez a CloudFlare DNS-kiszolgálón. Tehát a CloudFlare API tokent a számítógépén/szerverén kell tárolnia. Az API-token tárolása a megfelelő fájl-hozzáférési engedélyek biztosítása nélkül lehetővé teheti a többi program/felhasználó számára, hogy hozzáférjenek az API-tokenhez. Ezt biztonsági okokból nem szeretné. Ebben a részben bemutatjuk, hogyan tárolhatja biztonságosan a CloudFlare API tokent a fájlrendszeren.

Először hozzon létre egy könyvtárat (azaz ~/.secrets/certbot), ahol tárolni kívánja a CloudFlare API-kulcsot az alábbiak szerint:

$ mkdir -pv ~ / .titkok / certbot

  Képernyőkép egy számítógépről Leírás automatikusan generálva

Hozzon létre egy „cloudflare.ini” fájlt az újonnan létrehozott könyvtárban (azaz ~/.secrets/certbot), és nyissa meg kedvenc szövegszerkesztőjével (pl. nano) az alábbiak szerint:

$ nano ~ / .titkok / certbot / cloudflare.ini

Írja be a következő sort a „cloudflare.ini” fájlba, és nyomja meg a gombot + x ezt követi az „Y” és a mentéséhez (ha a nano szövegszerkesztőt használja).

dns_cloudflare_api_token = < a te-felhőfáklya-api-token >

  Képernyőkép egy számítógépről Leírás automatikusan generálva

A „cloudflare.ini” fájl megfelelő hozzáférési engedélyének biztosításához futtassa a következő parancsokat, hogy megbizonyosodjon arról, hogy csak a root felhasználónak van olvasási és írási hozzáférése a fájlhoz:

$ sudo chown root:root ~ / .titkok / certbot / cloudflare.ini

$ sudo chmod 0600 ~ / .titkok / certbot / cloudflare.ini

Mint látható, csak a root felhasználó rendelkezik olvasási és írási jogosultsággal a „cloudflare.ini” fájlhoz.

$ ls -lh ~ / .titkok / certbot / cloudflare.ini

Más felhasználók, akik megpróbálják elolvasni a „cloudflare.ini” fájlt, „Engedély megtagadva” hibaüzenetet kapnak.

$ macska ~ / .titkok / certbot / cloudflare.ini

  Képernyőkép egy számítógépről Leírás automatikusan generálva

SSL-tanúsítvány generálása a Certbot CloudFlare DNS-ellenőrzés segítségével

A Let’s Encrypt SSL-tanúsítvány létrehozásához a „*.nodekite.com” helyettesítő karakteres tartománynévhez a CloudFlare DNS-ellenőrzéssel, futtassa a cerbot parancsot az alábbiak szerint:

$ sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials ~ / .titkok / certbot / cloudflare.ini -d * .nodekite.com

A Let’s Encrypt SSL tanúsítvány létrehozása a „nodekite.com” és a „www.nodekite.com” using the CloudFlare DNS validation, use the “-d” option of the certbot command for each domain name as follows” domainnevekhez:

$ sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials ~ / .titkok / certbot / cloudflare.ini -d www.nodekite.com -d nodekite.com

Ha a DNS-módosítások sok időt vesz igénybe, amíg elterjednek a világszerte népszerű DNS-névszervereken, a Certbot „–dns-cloudflare-propagation-seconds” opciójával beállíthatja, hogy a Certbot hány másodpercet várjon a DNS-ellenőrzés előtt. előadott.

$ sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials ~ / .titkok / certbot / cloudflare.ini --dns-cloudflare-propagation-seconds 60 -d * .nodekite.com

A Certbot parancs futtatása után meg kell adnia az e-mail címét. Írja be e-mail címét és nyomja meg folytatni.

Nyomja meg az „Y” gombot, majd nyomja meg a gombot hogy elfogadja a Let’s Encrypt „Szolgáltatási feltételeit”.

  Képernyőkép egy számítógépről Leírás automatikusan generálva

Nyomja meg az „Y” gombot, majd nyomja meg a gombot .

  Automatikusan generált számítógépes program Leírás képernyőképe

A Let’s Encrypt SSL tanúsítvány kiadása folyamatban van. Eltart egy ideig, amíg elkészül.

  Képernyőkép egy számítógépes hibáról Leírás automatikusan generálva

Ekkor adják ki a Let’s Encrypt SSL tanúsítványt. Meg kell jelennie az SSL-tanúsítványfájlok mentésének teljes elérési útjának. Az SSL-tanúsítvány lejárati dátumát is meg kell jeleníteni.

  Képernyőkép egy számítógépről Leírás automatikusan generálva

Az SSL-tanúsítványok titkosítása Certbot használatával

A következő paranccsal felsorolhatja az összes Let’s Encrypt SSL-tanúsítványt, amelyet a Certbot segítségével generált:

$ sudo certbot tanúsítványok

Amint láthatja, a „nodekite.com” domainhez generált Let’s Encrypt SSL-tanúsítvány szerepel a listán [1] . Helyettesítő karakteres SSL-tanúsítványt adnak ki a „nodekite.com” számára [2] domain név. A tanúsítvány lejárati ideje 2024-03-20 (érvényes 89 napig) [3] . Itt található a tanúsítvány és a privát kulcs elérési útja is [4] .

  Képernyőkép egy számítógépről Leírás automatikusan generálva

A Certbot a tartományaihoz létrehozott összes SSL-tanúsítványt a megfelelő mappában található „/etc/letsencrypt/live” könyvtárban tárolja.

$ sudo ls -Rlh / stb / letsencrypt / élő /

  Képernyőkép egy számítógépről Leírás automatikusan generálva

A Let’s Encrypt SSL-tanúsítványok megújítása Certbot használatával

A Certbot automatikusan megújítja az összes Let’s Encrypt SSL-tanúsítványt, amelyet a CloudFlare DNS-ellenőrzéssel generált.

Annak teszteléséhez, hogy a Let’s Encrypt SSL-tanúsítványok automatikus megújítási funkciója működik-e, futtassa a következő parancsot:

$ sudo certbot megújítani --szárazon futás

Az automatikus megújítási műveletet a rendszer az Ön által generált Let’s Encrypt SSL-tanúsítványok mindegyikénél szimulálja.

  Képernyőkép egy számítógépről Leírás automatikusan generálva

Ha a tesztek sikeresek, akkor gratulálunk. A sikeres teszt azt jelenti, hogy az SSL-tanúsítványok lejáratuk előtt automatikusan megújulnak. Nem kell mást tenned.

  Képernyőkép egy számítógépről Leírás automatikusan generálva

A Certbot automatikus megújítási funkciójának működéséhez a „cerbot.timer” rendszeridőzítőnek engedélyezve és aktívnak kell lennie a számítógépen/szerveren.

A következő paranccsal ellenőrizheti, hogy a „cerbot.timer” systemd időzítő engedélyezve van-e és aktív-e:

$ sudo systemctl állapot certbot.timer

Amint láthatja, a „certbot.timer” rendszeridőzítő engedélyezve van (automatikusan elindul a rendszerindításkor) [1] és aktív [2] . A Certbot már 11 perc elteltével ellenőrzi, hogy szükség van-e SSL-tanúsítvány megújítására (a következő képernyőkép szerint), és megújítja a lejáró SSL-tanúsítványokat [3] .

  Képernyőkép egy számítógépről Leírás automatikusan generálva

Annak manuális ellenőrzéséhez, hogy valamelyik SSL-tanúsítvány hamarosan lejár-e, és megújítsa a lejáró SSL-tanúsítványokat, futtassa a következő parancsot:

$ sudo certbot megújítani

Esetünkben egyetlen SSL-tanúsítvány sem fog lejárni. Tehát a Certbot nem kísérelte meg az SSL-tanúsítvány megújítását.

Ha arra szeretné kényszeríteni a Certbotot, hogy megújítsa egy adott tartomány SSL-tanúsítványát (tegyük fel, hogy *.nodekite.com), futtassa a következő parancsot:

$ sudo certbot certonly --erő-megújítás -d * .nodekite.com

Nyomja meg az „1” gombot, majd nyomja meg a gombot az első lehetőség kiválasztásához (a CloudFlare DNS használatával végzett DNS-ellenőrzéshez).

  Képernyőkép egy számítógépről Leírás automatikusan generálva

Az SSL tanúsítványt meg kell újítani.

Következtetés

Ahhoz, hogy egy Let’s Encrypt SSL-tanúsítványt kaphasson a CloudFlare DNS-ellenőrzéssel a Certbot használatával, hozzáférésre van szüksége a CloudFlare API tokenhez. Ebben a cikkben bemutattuk, hogyan hozhat létre CloudFlare API tokent a domainjéhez, és hogyan tárolhatja biztonságosan számítógépén/szerverén, hogy szükség esetén hozzáférhessen a Certbot segítségével. Azt is megmutattuk, hogyan telepítheti a Certbotot és a Certbot CloudFlare DNS-bővítményt a legnépszerűbb Linux-disztribúciókra. Megmutattuk, hogyan hozhat létre Let’s Encrypt helyettesítő karakteres SSL-tanúsítványokat, valamint SSL-tanúsítványokat egyedi domainekhez Certbot és CloudFlare DNS-ellenőrzéssel. Végül megmutattuk, hogyan újíthatja meg a Let’s Encrypt SSL-tanúsítványokat a Certbot segítségével automatikusan és manuálisan.

Referenciák: