Jak získat šifrování SSL certifikátů pomocí Certbot CloudFlare DNS Validation

Jak Ziskat Sifrovani Ssl Certifikatu Pomoci Certbot Cloudflare Dns Validation



Certbot je klient ACME pro certifikační autoritu Let’s Encrypt (CA). Slouží k vygenerování certifikátu Let’s Encrypt SSL a jeho automatické obnově. Ve výchozím nastavení používá Certbot výzvu Let’s Encrypt HTTP-01 k ověření vlastnictví domény a vydání certifikátu SSL pro doménu. Výzva HTTP-01 však nebude fungovat, pokud nemáte veřejnou IP adresu a váš počítač není dostupný z internetu. Pokud tedy chcete používat certifikáty Let’s Encrypt SSL pro vaši domácí síť nebo privátní síť, musíte místo toho použít výzvu DNS-01. Když se použije výzva DNS-01, Let’s Encrypt ověří vlastnictví domény pomocí serveru DNS domény. Takže to funguje i pro privátní sítě.

Podrobné vysvětlení toho, jak výzva Let’s Encrypt DNS-01 (nebo ověření DNS) funguje, najdete v článku s názvem Co je to výzva pro šifrování DNS-01 a jak ji použít k získání certifikátů SSL.

V tomto článku vám ukážeme, jak použít ověření Let’s Encrypt DNS k získání certifikátu SSL pro název vaší domény pomocí pluginu Certbot a Certbot CloudFlare DNS.







Téma obsahu:

  1. Správa vaší domény pomocí CloudFlare DNS
  2. Instalace pluginu Certbot a Certbot CloudFlare na Ubuntu/Debian
  3. Instalace pluginu Certbot a Certbot CloudFlare na Fedoru
  4. Instalace pluginu Certbot a Certbot CloudFlare na RHEL/AlmaLinux/Rocky Linux/CentOS Stream
  5. Kontrola, zda jsou Certbot a Certbot CloudFlare Plugin správně nainstalovány
  6. Generování tokenu CloudFlare API
  7. Bezpečné uložení tokenu CloudFlare API na počítači/serveru
  8. Generování certifikátu SSL pomocí ověření DNS Certbot CloudFlare
  9. Seznam Let’s Encrypt SSL Certificates Using Certbot
  10. Obnovení certifikátu Let’s Encrypt SSL pomocí Certbotu
  11. Závěr
  12. Reference

Správa vaší domény pomocí CloudFlare DNS

Chcete-li získat certifikát Let’s Encrypt SSL pomocí ověření CloudFlare DNS, musíte mít účet CloudFlare a vaše doména musí používat CloudFlare DNS. Můžeš vytvořte si zdarma účet CloudFlare a služba CloudFlare DNS je také zdarma.



Chcete-li spravovat svou doménu pomocí CloudFlare DNS, můžete provést jednu z následujících akcí:



  • Zaregistrujte svou doménu z CloudFlare
  • Převeďte svou doménu do CloudFlare
  • Změňte DNS nameserver názvu vaší domény na CloudFlare DNS nameserver z řídicího panelu vašeho registrátora domény

Nemusíte kupovat doménu od CloudFlare nebo převádět doménu do CloudFlare, abyste ji mohli spravovat pomocí služby CloudFlare DNS. Stačí změnit jmenný server vaší domény na DNS jmenný server CloudFlare z řídicího panelu vašeho registrátora domény (u kterého jste doménu zakoupili) a spravovat svou doménu z CloudFlare. Další informace o změně jmenného serveru vaší domény na jmenný server CloudFlare DNS najdete v tomto článku.





Instalace pluginu Certbot a Certbot CloudFlare na Ubuntu/Debian

Certbot a Certbot CloudFlare plugin jsou k dispozici v oficiálním úložišti balíčků Ubuntu/Debian. Můžete je tedy nainstalovat na Ubuntu/Debian velmi snadno.

Nejprve aktualizujte mezipaměť úložiště balíčků APT pomocí následujícího příkazu:



$ sudo apt aktualizace

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Chcete-li nainstalovat plugin Certbot a Certbot CloudFlare DNS, spusťte následující příkaz:

$ sudo apt Nainstalujte certbot python3-certbot-dns-cloudflare

Pro potvrzení instalace stiskněte „Y“ a poté stiskněte .

Probíhá instalace pluginu Certbot a Certbot CloudFlare DNS. Dokončení chvíli trvá.

V tomto okamžiku by měl být nainstalován plugin Certbot a Certbot CloudFlare DNS.

Instalace pluginu Certbot a Certbot CloudFlare na Fedoru

Certbot a Certbot CloudFlare plugin jsou k dispozici v oficiálním úložišti balíčků Fedory a lze je na Fedoru velmi snadno nainstalovat.

Nejprve aktualizujte databázi balíčků DNF pomocí následujícího příkazu:

$ sudo dnf makecache

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Chcete-li nainstalovat plugin Certbot a Certbot CloudFlare DNS na Fedoru, spusťte následující příkaz:

$ sudo dnf Nainstalujte certbot python3-certbot-dns-cloudflare

Pro potvrzení instalace stiskněte „Y“ a poté stiskněte .

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Probíhá instalace pluginu Certbot a Certbot CloudFlare DNS. Dokončení chvíli trvá.

  Automaticky vygenerovaný snímek obrazovky s popisem počítačového programu

V tomto okamžiku by měl být na Fedoře nainstalován plugin Certbot a Certbot CloudFlare DNS.

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Instalace pluginu Certbot a Certbot CloudFlare na RHEL/AlmaLinux/Rocky Linux/CentOS Stream

Plugin Certbot CloudFlare DNS není dostupný v oficiálních repozitářích balíčků RHEL/AlmaLinux/Rocky Linux/CentOS Stream. Plugin Certbot CloudFlare DNS je dostupný v úložišti balíčků EPEL. Můžete povolit úložiště balíčků EPEL na RHEL/AlmaLinux/Rocky Linux/CentOS Stream a odtud nainstalovat plugin Certbot CloudFlare DNS.

Jakmile povolíte úložiště balíčků EPEL, aktualizujte mezipaměť databáze DNF pomocí následujícího příkazu:

$ sudo dnf makecache

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Poté nainstalujte plugin Certbot a Certbot CloudFlare DNS do systému RHEL/AlmaLinux/Rocky Linux/CentOS Stream pomocí následujícího příkazu:

$ sudo dnf Nainstalujte certbot python3-certbot-dns-cloudflare

Pro potvrzení instalace stiskněte „Y“ a poté stiskněte .

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Probíhá instalace pluginu Certbot a Certbot CloudFlare DNS. Dokončení chvíli trvá.

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Chcete-li přijmout klíč GPG z úložiště EPEL, stiskněte „Y“ a poté stiskněte .

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

V tomto okamžiku by měl být nainstalován plugin Certbot a Certbot CloudFlare DNS.

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Kontrola, zda jsou Certbot a Certbot CloudFlare Plugin správně nainstalovány

Chcete-li zkontrolovat, zda je na vašem počítači nainstalován Certbot, spusťte následující příkaz:

$ certbot --verze

Pokud je nainstalován Certbot, měl by příkaz vytisknout číslo verze nainstalovaného Certbota na vašem počítači.

Jak můžete vidět, na našem stroji Debian máme nainstalovaný Certbot 2.1.0.

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Chcete-li zkontrolovat, zda je na vašem počítači nainstalován plugin Certbot CloudFlare DNS, spusťte následující příkaz:

$ sudo pluginy certbot

Pokud je nainstalován plugin Certbot CloudFlare DNS, měli byste najít „dns-cloudflare“ v seznamu pluginů, jak je označeno na následujícím snímku obrazovky:

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Generování tokenu CloudFlare API

K ověření vlastnictví domény musí Certbot přidat záznam TXT na doméně, kterou spravuje server DNS CloudFlare. K tomu potřebuje Certbot přístup k tokenu CloudFlare API. Token API pro svou doménu můžete vytvořit z řídicího panelu CloudFlare.

Nejprve se přihlaste ke svému účtu CloudFlare. Poté klikněte na ikonu svého profilu

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

Přejděte do části „Tokeny API“. [1] a klikněte na „Vytvořit token“ [2] .

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Klikněte na „Použít šablonu“ v části „Upravit DNS zóny“.

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

V části „Oprávnění“ povolte oprávnění „Upravit“ pro „Zónu DNS“ výběrem označených možností z rozbalovacích nabídek.

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Pokud s CloudFlare spravujete více domén, můžete povolit úpravu „Specifické zóny“ v části „Zone Resource“. Povolit tokenu API upravovat pouze jednu zónu je bezpečnější než umožnit tokenu API upravovat všechny zóny. Je to proto, že pokud je token API kompromitován, útočná plocha bude menší a způsobí menší poškození.

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Pokud chcete použít jeden klíč API k úpravě všech domén spravovaných CloudFlare, vyberte v části „Zone Resource“ možnost „Všechny zóny“.

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Po dokončení konfigurace tokenu API klikněte na „Pokračovat na shrnutí“.

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Zobrazí se souhrn akcí, které můžete provést na vašich doménách spravovaných CloudFlare pomocí tokenu API. Klikněte na „Vytvořit token“.

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Měl by být vytvořen token API. Zkopírujte si token API na bezpečné místo, abyste jej neztratili. Jakmile tuto stránku opustíte, nebudete moci tento token API znovu najít. Musíte vygenerovat nový token API pro případ, že jej ztratíte:

LyPCAcOBygX1UMHvcsvBFo41aItm2cCVxnjloZj5

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Bezpečné uložení tokenu CloudFlare API na počítači/serveru

Certbot potřebuje použít token CloudFlare API k přidání nového záznamu TXT pro vaši doménu na server DNS CloudFlare. Takže token CloudFlare API musíte uložit na svůj počítač/server. Uložení tokenu API bez zajištění správných přístupových oprávnění k souboru může umožnit přístup k tokenu rozhraní API dalším programům/uživatelům. To z bezpečnostních důvodů nechcete. V této části vám ukážeme, jak bezpečně uložit token CloudFlare API na souborovém systému.

Nejprve vytvořte adresář (tj. ~/.secrets/certbot), kam chcete uložit klíč API CloudFlare, a to následovně:

$ mkdir -pv ~ / .tajemství / certbot

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Vytvořte soubor „cloudflare.ini“ v nově vytvořeném adresáři (tj. ~/.secrets/certbot) a otevřete jej pomocí svého oblíbeného textového editoru (tj. nano) takto:

$ nano ~ / .tajemství / certbot / cloudflare.ini

Zadejte následující řádek do souboru „cloudflare.ini“ a stiskněte + X následuje „Y“ a uložit (pokud používáte textový editor nano).

dns_cloudflare_api_token = < your-cloudflare-api-token >

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Chcete-li zajistit správné přístupové oprávnění pro soubor „cloudflare.ini“, spusťte následující příkazy, abyste se ujistili, že přístup pro čtení a zápis k souboru má pouze uživatel root:

$ sudo chown root:root ~ / .tajemství / certbot / cloudflare.ini

$ sudo chmod 0600 ~ / .tajemství / certbot / cloudflare.ini

Jak vidíte, oprávnění ke čtení a zápisu do souboru „cloudflare.ini“ má pouze uživatel root.

$ ls -lh ~ / .tajemství / certbot / cloudflare.ini

Ostatním uživatelům, kteří se pokusí přečíst soubor „cloudflare.ini“, se zobrazí chybová zpráva „Povolení odepřeno“.

$ kočka ~ / .tajemství / certbot / cloudflare.ini

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Generování certifikátu SSL pomocí ověření DNS Certbot CloudFlare

Chcete-li pomocí ověření CloudFlare DNS vygenerovat certifikát Let’s Encrypt SSL pro zástupný název domény „*.nodekite.com“, spusťte příkaz cerbot následovně:

$ sudo certbot určitě --dns-cloudflare --dns-cloudflare-predentials ~ / .tajemství / certbot / cloudflare.ini -d * .nodekite.com

Chcete-li vygenerovat certifikát Let's Encrypt SSL pro 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čitě --dns-cloudflare --dns-cloudflare-predentials ~ / .tajemství / certbot / cloudflare.ini -d www.nodekite.com -d nodekite.com

Pokud trvá dlouho, než se změny DNS rozšíří na oblíbené jmenné servery DNS po celém světě, můžete pomocí možnosti „–dns-cloudflare-propagation-seconds“ Certbota nastavit počet sekund, po které má Certbot čekat před ověřením DNS. se provádí.

$ sudo certbot určitě --dns-cloudflare --dns-cloudflare-predentials ~ / .tajemství / certbot / cloudflare.ini --dns-cloudflare-propagation-seconds 60 -d * .nodekite.com

Jakmile spustíte příkaz Certbot, budete požádáni o zadání vaší e-mailové adresy. Zadejte svou e-mailovou adresu a stiskněte pokračovat.

Stiskněte „Y“ a poté stiskněte přijmout „Smluvní podmínky“ Let's Encrypt.

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Stiskněte „Y“ a poté stiskněte .

  Automaticky vygenerovaný snímek obrazovky s popisem počítačového programu

Vydává se certifikát Let’s Encrypt SSL. Dokončení chvíli trvá.

  Automaticky vygenerován snímek obrazovky s popisem chyby počítače

V tomto okamžiku je vydán certifikát Let’s Encrypt SSL. Měla by se zobrazit úplná cesta, kam jsou soubory certifikátu SSL uloženy. Také by se mělo zobrazit datum vypršení platnosti certifikátu SSL.

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Seznam Let’s Encrypt SSL Certificates Using Certbot

Pomocí následujícího příkazu můžete vypsat všechny certifikáty Let’s Encrypt SSL, které jste vygenerovali pomocí Certbotu:

$ sudo certifikáty certbot

Jak vidíte, je uveden vygenerovaný certifikát Let’s Encrypt SSL pro doménu „nodekite.com“. [1] . Pro „nodekite.com“ je vydán zástupný SSL certifikát [2] doménové jméno. Datum vypršení platnosti certifikátu je 2024-03-20 (platnost 89 dní) [3] . Zde je také uvedena cesta certifikátu a soukromého klíče [4] .

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Certbot ukládá všechny certifikáty SSL, které jste vygenerovali pro své domény, v adresáři „/etc/letsencrypt/live“ v příslušné složce.

$ sudo ls -Rlh / atd / letsencrypt / žít /

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Obnovení certifikátu Let’s Encrypt SSL pomocí Certbotu

Certbot automaticky obnovuje všechny certifikáty Let’s Encrypt SSL, které jste vygenerovali pomocí ověření DNS CloudFlare.

Chcete-li otestovat, zda funguje funkce automatického obnovení certifikátů Let’s Encrypt SSL, spusťte následující příkaz:

$ sudo certbot obnovit -- chod nasucho

Akce automatického obnovení je simulována pro každý z vámi vygenerovaných certifikátů Let’s Encrypt SSL.

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Pokud budou testy úspěšné, budete gratulovat. Úspěšný test znamená, že certifikáty SSL budou před vypršením platnosti automaticky obnoveny. Nebudete muset dělat nic jiného.

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Aby funkce automatického obnovení Certbot fungovala, musí být na vašem počítači/serveru povolen a aktivní systémový časovač „cerbot.timer“.

Zda je systémový časovač „cerbot.timer“ povolen a aktivní, můžete zkontrolovat pomocí následujícího příkazu:

$ sudo systemctl status certbot.timer

Jak můžete vidět, systémový časovač „certbot.timer“ je povolen (automaticky se spustí při spouštění) [1] a aktivní [2] . Certbot po pouhých 11 minutách (podle následujícího snímku obrazovky) zkontroluje, zda není potřeba obnovit nějaký SSL certifikát, a obnoví SSL certifikáty, kterým brzy vyprší platnost [3] .

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

Chcete-li ručně zkontrolovat, zda vyprší platnost některého certifikátu SSL, a obnovit platnost certifikátů SSL, jejichž platnost končí, spusťte následující příkaz:

$ sudo certbot obnovit

V našem případě žádný SSL certifikát nevyprší. Certbot se tedy nepokusil obnovit žádný certifikát SSL.

Chcete-li Certbota přinutit k obnovení certifikátu SSL konkrétní domény (řekněme *.nodekite.com), spusťte následující příkaz:

$ sudo certbot určitě --vynutit-obnovit -d * .nodekite.com

Stiskněte „1“ a stiskněte vyberte první možnost (pro ověření DNS pomocí CloudFlare DNS).

  Automaticky vygenerovaný snímek obrazovky s popisem počítače

SSL certifikát by měl být obnoven.

Závěr

Chcete-li získat certifikát Let’s Encrypt SSL pomocí ověření CloudFlare DNS pomocí Certbota, potřebujete přístup k tokenu CloudFlare API. V tomto článku jsme vám ukázali, jak vytvořit CloudFlare API token pro vaši doménu a bezpečně jej uložit na vašem počítači/serveru, abyste k němu měli v případě potřeby přístup pomocí Certbotu. Také jsme vám ukázali, jak nainstalovat Certbot a plugin Certbot CloudFlare DNS na nejoblíbenější distribuce Linuxu. Ukázali jsme vám, jak pomocí ověření DNS Certbot a CloudFlare vygenerovat zástupné SSL certifikáty Let’s Encrypt a také certifikáty SSL pro jednotlivé domény. Nakonec jsme vám ukázali, jak automaticky a ručně obnovit certifikáty Let’s Encrypt SSL pomocí Certbotu.

Reference: