Ako získať šifrovanie certifikátov SSL pomocou overenia DNS Certbot CloudFlare

Ako Ziskat Sifrovanie Certifikatov Ssl Pomocou Overenia Dns Certbot Cloudflare



Certbot je klient ACME pre certifikačnú autoritu Let’s Encrypt (CA). Slúži na vygenerovanie certifikátu Let’s Encrypt SSL a jeho automatickú obnovu. Certbot štandardne používa výzvu Let’s Encrypt HTTP-01 na overenie vlastníctva domény a vydanie certifikátu SSL pre doménu. Výzva HTTP-01 však nebude fungovať, pokiaľ nemáte verejnú IP adresu a váš počítač nebude dostupný z internetu. Ak teda chcete použiť certifikáty Let’s Encrypt SSL pre vašu domácu sieť alebo súkromnú sieť, musíte namiesto toho použiť výzvu DNS-01. Keď sa použije výzva DNS-01, Let's Encrypt overí vlastníctvo domény pomocou servera DNS domény. Takže to funguje aj pre súkromné ​​​​siete.

Podrobné vysvetlenie toho, ako funguje výzva Let’s Encrypt DNS-01 (alebo validácia DNS), si prečítajte v článku s názvom Čo je to výzva na šifrovanie DNS-01 a ako ju použiť na získanie certifikátov SSL.

V tomto článku vám ukážeme, ako použiť overenie Let’s Encrypt DNS na získanie certifikátu SSL pre názov vašej domény pomocou doplnku Certbot a Certbot CloudFlare DNS.







Téma obsahu:

  1. Správa vašej domény pomocou CloudFlare DNS
  2. Inštalácia doplnku Certbot a Certbot CloudFlare na Ubuntu/Debian
  3. Inštalácia doplnku Certbot a Certbot CloudFlare na Fedore
  4. Inštalácia doplnku Certbot a Certbot CloudFlare na RHEL/AlmaLinux/Rocky Linux/CentOS Stream
  5. Kontrola, či sú Certbot a Certbot CloudFlare Plugin správne nainštalované
  6. Generovanie tokenu CloudFlare API
  7. Bezpečné uloženie tokenu CloudFlare API na počítači/serveri
  8. Generovanie certifikátu SSL pomocou overenia DNS Certbot CloudFlare
  9. Zoznam Let's Encrypt SSL Certificates Using Certbot
  10. Obnovenie certifikátov Let's Encrypt SSL pomocou Certbotu
  11. Záver
  12. Referencie

Správa vašej domény pomocou CloudFlare DNS

Ak chcete získať certifikát Let’s Encrypt SSL pomocou overenia DNS CloudFlare, musíte mať účet CloudFlare a vaša doména musí používať CloudFlare DNS. Môžeš vytvorte si zadarmo účet CloudFlare a služba CloudFlare DNS je tiež zadarmo.



Ak chcete spravovať svoju doménu pomocou služby CloudFlare DNS, môžete vykonať jeden z nasledujúcich krokov:



  • Zaregistrujte si svoju doménu od CloudFlare
  • Preneste svoju doménu do CloudFlare
  • Zmeňte DNS nameserver názvu vašej domény na CloudFlare DNS nameserver z hlavného panela vášho registrátora domény

Nemusíte si kupovať doménu od CloudFlare ani prenášať doménu do CloudFlare, aby ste ju mohli spravovať pomocou služby CloudFlare DNS. Stačí zmeniť nameserver svojej domény na DNS nameserver CloudFlare z dashboardu vášho registrátora domény (odkiaľ ste si doménu kúpili) a spravovať svoju doménu od CloudFlare. Ďalšie informácie o zmene názvového servera vašej domény na názvový server DNS CloudFlare nájdete v tomto článku.





Inštalácia doplnku Certbot a Certbot CloudFlare na Ubuntu/Debian

Certbot a Certbot CloudFlare plugin sú dostupné v oficiálnom úložisku balíkov Ubuntu/Debian. Môžete ich teda nainštalovať na Ubuntu/Debian veľmi ľahko.

Najprv aktualizujte vyrovnávaciu pamäť balíka APT pomocou nasledujúceho príkazu:



$ sudo apt update

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Ak chcete nainštalovať doplnok Certbot a Certbot CloudFlare DNS, spustite nasledujúci príkaz:

$ sudo apt Inštalácia certbot python3-certbot-dns-cloudflare

Na potvrdenie inštalácie stlačte „Y“ a potom stlačte .

Inštaluje sa doplnok Certbot a Certbot CloudFlare DNS. Dokončenie chvíľu trvá.

V tomto bode by mal byť nainštalovaný doplnok Certbot a Certbot CloudFlare DNS.

Inštalácia doplnku Certbot a Certbot CloudFlare na Fedore

Doplnok Certbot a Certbot CloudFlare je dostupný v oficiálnom úložisku balíkov Fedory a dá sa do Fedory veľmi jednoducho nainštalovať.

Najprv aktualizujte databázu balíkov DNF pomocou nasledujúceho príkazu:

$ sudo dnf makecache

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Ak chcete nainštalovať doplnok Certbot a Certbot CloudFlare DNS na Fedore, spustite nasledujúci príkaz:

$ sudo dnf Inštalácia certbot python3-certbot-dns-cloudflare

Na potvrdenie inštalácie stlačte „Y“ a potom stlačte .

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Inštaluje sa doplnok Certbot a Certbot CloudFlare DNS. Dokončenie chvíľu trvá.

  Automaticky vygenerovaná snímka obrazovky s popisom počítačového programu

V tomto bode by mal byť na Fedore nainštalovaný doplnok Certbot a Certbot CloudFlare DNS.

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Inštalácia doplnku Certbot a Certbot CloudFlare na RHEL/AlmaLinux/Rocky Linux/CentOS Stream

Doplnok Certbot CloudFlare DNS nie je dostupný v oficiálnych archívoch balíkov RHEL/AlmaLinux/Rocky Linux/CentOS Stream. Doplnok Certbot CloudFlare DNS je dostupný v úložisku balíkov EPEL. Môžete povoliť úložisko balíkov EPEL na RHEL/AlmaLinux/Rocky Linux/CentOS Stream a odtiaľ nainštalovať doplnok Certbot CloudFlare DNS.

Po povolení úložiska balíkov EPEL aktualizujte vyrovnávaciu pamäť databázy DNF pomocou nasledujúceho príkazu:

$ sudo dnf makecache

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Potom nainštalujte doplnok Certbot a Certbot CloudFlare DNS do svojho systému RHEL/AlmaLinux/Rocky Linux/CentOS Stream pomocou nasledujúceho príkazu:

$ sudo dnf Inštalácia certbot python3-certbot-dns-cloudflare

Na potvrdenie inštalácie stlačte „Y“ a potom stlačte .

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Inštaluje sa doplnok Certbot a Certbot CloudFlare DNS. Dokončenie chvíľu trvá.

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Ak chcete prijať kľúč GPG z úložiska EPEL, stlačte „Y“ a potom stlačte .

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

V tomto bode by mal byť nainštalovaný doplnok Certbot a Certbot CloudFlare DNS.

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Kontrola, či sú Certbot a Certbot CloudFlare Plugin správne nainštalované

Ak chcete skontrolovať, či je na vašom počítači nainštalovaný Certbot, spustite nasledujúci príkaz:

$ certbot --verzia

Ak je nainštalovaný Certbot, príkaz by mal vytlačiť číslo verzie nainštalovaného Certbota na vašom počítači.

Ako môžete vidieť, na našom stroji Debian máme nainštalovaný Certbot 2.1.0.

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Ak chcete skontrolovať, či je na vašom počítači nainštalovaný doplnok Certbot CloudFlare DNS, spustite nasledujúci príkaz:

$ sudo pluginy certbot

Ak je nainštalovaný doplnok Certbot CloudFlare DNS, mali by ste nájsť „dns-cloudflare“ v zozname doplnkov, ako je označené na nasledujúcej snímke obrazovky:

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Generovanie tokenu CloudFlare API

Na overenie vlastníctva domény musí Certbot pridať záznam TXT na doménu, ktorú spravuje server DNS CloudFlare. Na to potrebuje Certbot prístup k tokenu CloudFlare API. Token API pre svoju doménu môžete vytvoriť z ovládacieho panela CloudFlare.

Najprv sa prihláste do svojho účtu CloudFlare. Potom kliknite na ikonu svojho profilu

> Môj profil z pravého horného rohu stránky.

Prejdite do časti „Tokeny API“. [1] a kliknite na „Vytvoriť token“ [2] .

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Kliknite na „Použiť šablónu“ v časti „Upraviť DNS zóny“.

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

V sekcii „Povolenie“ povoľte povolenie „Upraviť“ pre „Zónu DNS“ výberom označených možností z rozbaľovacích ponúk.

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Ak spravujete viacero domén pomocou CloudFlare, môžete povoliť úpravu „špecifickej zóny“ v sekcii „Zone Resource“. Povoliť tokenu API upravovať iba jednu zónu je bezpečnejšie ako povoliť tokenu rozhrania API upravovať všetky zóny. Je to preto, že ak je token API kompromitovaný, plocha útoku bude menšia a spôsobí sa menšie poškodenie.

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Ak chcete použiť jeden kľúč API na úpravu všetkých vašich domén spravovaných CloudFlare, v sekcii „Zone Resource“ vyberte „All zones“.

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Po dokončení konfigurácie tokenu API kliknite na „Pokračovať na súhrn“.

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Zobrazí sa súhrn akcií, ktoré môžete vykonať na svojich doménach spravovaných CloudFlare s tokenom API. Kliknite na „Vytvoriť token“.

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Mal by sa vytvoriť token rozhrania API. Skopírujte token API na bezpečné miesto, aby ste ho nestratili. Keď opustíte túto stránku, tento token rozhrania API už nebudete môcť nájsť. V prípade, že ho stratíte, musíte vygenerovať nový token API:

LyPCAcOBygX1UMHvcsvBFo41aItm2cCVxnjloZj5

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Bezpečné uloženie tokenu CloudFlare API na počítači/serveri

Certbot potrebuje použiť token CloudFlare API na pridanie nového záznamu TXT pre vašu doménu na server DNS CloudFlare. Takže token CloudFlare API musíte uložiť na svojom počítači/serveri. Uloženie tokenu API bez zaistenia správnych povolení na prístup k súborom môže umožniť prístup k tokenu API iným programom/používateľom. Toto z bezpečnostných dôvodov nechcete. V tejto časti vám ukážeme, ako bezpečne uložiť token CloudFlare API na súborovom systéme.

Najprv vytvorte adresár (t.j. ~/.secrets/certbot), do ktorého chcete uložiť kľúč API CloudFlare, a to nasledovne:

$ mkdir -pv ~ / .tajomstvá / certbot

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Vytvorte súbor „cloudflare.ini“ v novovytvorenom adresári (t.j. ~/.secrets/certbot) a otvorte ho vo svojom obľúbenom textovom editore (t.j. nano) takto:

$ nano ~ / .tajomstvá / certbot / cloudflare.ini

Napíšte nasledujúci riadok do súboru „cloudflare.ini“ a stlačte + X nasleduje „Y“ a uložiť (ak používate nano textový editor).

dns_cloudflare_api_token = < your-cloudflare-api-token >

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Ak chcete zabezpečiť správne prístupové povolenie pre súbor „cloudflare.ini“, spustite nasledujúce príkazy, aby ste sa uistili, že prístup na čítanie a zápis do súboru má iba používateľ root:

$ sudo chown root:root ~ / .tajomstvá / certbot / cloudflare.ini

$ sudo chmod 0600 ~ / .tajomstvá / certbot / cloudflare.ini

Ako vidíte, iba používateľ root má oprávnenia na čítanie a zápis do súboru „cloudflare.ini“.

$ ls -lh ~ / .tajomstvá / certbot / cloudflare.ini

Ostatným používateľom, ktorí sa pokúsia prečítať súbor „cloudflare.ini“, sa zobrazí chybové hlásenie „Povolenie odmietnuté“.

$ kat ~ / .tajomstvá / certbot / cloudflare.ini

  Automaticky vygenerovaná snímka obrazovky počítača Popis

Generovanie certifikátu SSL pomocou overenia DNS Certbot CloudFlare

Ak chcete vygenerovať certifikát Let’s Encrypt SSL pre názov domény so zástupným znakom „*.nodekite.com“ pomocou overenia DNS CloudFlare, spustite príkaz cerbot takto:

$ sudo certbot určite --dns-cloudflare --dns-cloudflare-poverenia ~ / .tajomstvá / certbot / cloudflare.ini -d * .nodekite.com

Ak chcete vygenerovať certifikát Let's Encrypt SSL pre názvy domén „nodekite.com“ a „www.nodekite.com” using the CloudFlare DNS validation, use the “-d” option of the certbot command for each domain name as follows:

$ sudo certbot určite --dns-cloudflare --dns-cloudflare-poverenia ~ / .tajomstvá / certbot / cloudflare.ini -d www.nodekite.com -d nodekite.com

Ak sa zmeny DNS prejavia na populárnych názvových serveroch DNS po celom svete, môžete použiť možnosť „–dns-cloudflare-propagation-seconds“ Certbota na nastavenie počtu sekúnd, počas ktorých má Certbot čakať pred overením DNS. sa vykonáva.

$ sudo certbot určite --dns-cloudflare --dns-cloudflare-poverenia ~ / .tajomstvá / certbot / cloudflare.ini --dns-cloudflare-propagation-seconds 60 -d * .nodekite.com

Po spustení príkazu Certbot sa zobrazí výzva na zadanie vašej e-mailovej adresy. Zadajte svoju e-mailovú adresu a stlačte pokračovať.

Stlačte „Y“ a potom stlačte akceptovať „Zmluvné podmienky“ Let's Encrypt.

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Stlačte „Y“ a potom stlačte .

  Automaticky vygenerovaná snímka obrazovky s popisom počítačového programu

Vydáva sa certifikát Let's Encrypt SSL. Dokončenie chvíľu trvá.

  Automaticky vygenerovaná snímka obrazovky s popisom chyby počítača

V tomto okamihu je vydaný certifikát Let’s Encrypt SSL. Mala by sa zobraziť úplná cesta, kde sú uložené súbory certifikátu SSL. Tiež by sa mal zobraziť dátum vypršania platnosti certifikátu SSL.

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Zoznam Let's Encrypt SSL Certificates Using Certbot

Všetky certifikáty Let's Encrypt SSL, ktoré ste vygenerovali pomocou Certbotu, môžete zobraziť pomocou nasledujúceho príkazu:

$ sudo certifikáty certbot

Ako vidíte, je uvedený vygenerovaný certifikát Let’s Encrypt SSL pre doménu „nodekite.com“. [1] . Pre „nodekite.com“ je vydaný zástupný SSL certifikát [2] doménové meno. Dátum vypršania platnosti certifikátu je 20.03.2024 (platí 89 dní) [3] . Je tu tiež uvedená cesta certifikátu a súkromného kľúča [4] .

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Certbot ukladá všetky certifikáty SSL, ktoré ste vygenerovali pre svoje domény, v adresári „/etc/letsencrypt/live“ v ich príslušnom priečinku.

$ sudo ls -Rlh / atď / letsencrypt / naživo /

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Obnovenie certifikátov Let's Encrypt SSL pomocou Certbotu

Certbot automaticky obnovuje všetky certifikáty Let’s Encrypt SSL, ktoré ste vygenerovali pomocou overenia DNS CloudFlare.

Ak chcete otestovať, či funguje funkcia automatického obnovenia certifikátov Let’s Encrypt SSL, spustite nasledujúci príkaz:

$ sudo obnoviť certbot --suchý chod

Akcia automatického obnovenia je simulovaná pre každý z certifikátov Let’s Encrypt SSL, ktoré ste vygenerovali.

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Ak budú testy úspešné, budete zablahoželať. Úspešný test znamená, že SSL certifikáty budú automaticky obnovené pred uplynutím ich platnosti. Nebudete musieť robiť nič iné.

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Aby funkcia automatického obnovenia Certbot fungovala, musí byť na vašom počítači/serveri povolený a aktívny systémový časovač „cerbot.timer“.

Pomocou nasledujúceho príkazu môžete skontrolovať, či je systémový časovač „cerbot.timer“ povolený a aktívny:

$ sudo systemctl status certbot.timer

Ako vidíte, systémový časovač „certbot.timer“ je povolený (automaticky sa spustí pri štarte) [1] a aktívny [2] . Certbot skontroluje, či je potrebné obnoviť nejaký SSL certifikát už po 11 minútach (podľa nasledujúcej snímky obrazovky) a obnoví SSL certifikáty, ktorých platnosť čoskoro vyprší [3] .

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

Ak chcete manuálne skontrolovať, či sa blíži koniec platnosti niektorého certifikátu SSL a obnoviť platnosť certifikátov SSL, ktorej platnosť sa končí, spustite nasledujúci príkaz:

$ sudo obnoviť certbot

V našom prípade nie je ukončená platnosť žiadneho certifikátu SSL. Certbot sa teda nepokúsil obnoviť žiadny certifikát SSL.

Ak chcete prinútiť Certbot, aby obnovil certifikát SSL konkrétnej domény (povedzme *.nodekite.com), spustite nasledujúci príkaz:

$ sudo certbot určite --vynútiť-obnoviť -d * .nodekite.com

Stlačte „1“ a stlačte vyberte prvú možnosť (pre overenie DNS pomocou CloudFlare DNS).

  Automaticky vygenerovaná snímka obrazovky s popisom počítača

SSL certifikát by sa mal obnoviť.

Záver

Ak chcete získať certifikát Let’s Encrypt SSL pomocou overenia DNS CloudFlare pomocou Certbot, potrebujete prístup k tokenu CloudFlare API. V tomto článku sme vám ukázali, ako vytvoriť token CloudFlare API pre vašu doménu a bezpečne ho uložiť na vašom počítači/serveri, aby ste k nemu mali v prípade potreby pristupovať pomocou Certbotu. Tiež sme vám ukázali, ako nainštalovať Certbot a doplnok Certbot CloudFlare DNS na najobľúbenejšie distribúcie Linuxu. Ukázali sme vám, ako pomocou overenia DNS Certbot a CloudFlare vygenerovať zástupné SSL certifikáty Let’s Encrypt, ako aj certifikáty SSL pre jednotlivé domény. Nakoniec sme vám ukázali, ako automaticky a manuálne obnoviť certifikáty Let’s Encrypt SSL pomocou Certbotu.

Referencie: