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:
- Správa vaší domény pomocí CloudFlare DNS
- Instalace pluginu Certbot a Certbot CloudFlare na Ubuntu/Debian
- Instalace pluginu Certbot a Certbot CloudFlare na Fedoru
- Instalace pluginu Certbot a Certbot CloudFlare na RHEL/AlmaLinux/Rocky Linux/CentOS Stream
- Kontrola, zda jsou Certbot a Certbot CloudFlare Plugin správně nainstalovány
- Generování tokenu CloudFlare API
- Bezpečné uložení tokenu CloudFlare API na počítači/serveru
- Generování certifikátu SSL pomocí ověření DNS Certbot CloudFlare
- Seznam Let’s Encrypt SSL Certificates Using Certbot
- Obnovení certifikátu Let’s Encrypt SSL pomocí Certbotu
- Závěr
- 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
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
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
Probíhá instalace pluginu Certbot a Certbot CloudFlare DNS. Dokončení chvíli trvá.
V tomto okamžiku by měl být na Fedoře nainstalován plugin Certbot a Certbot CloudFlare DNS.
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
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
Probíhá instalace pluginu Certbot a Certbot CloudFlare DNS. Dokončení chvíli trvá.
Chcete-li přijmout klíč GPG z úložiště EPEL, stiskněte „Y“ a poté stiskněte
V tomto okamžiku by měl být nainstalován plugin Certbot a Certbot CloudFlare DNS.
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 --verzePokud 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.
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 certbotPokud 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:
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] .
Klikněte na „Použít šablonu“ v části „Upravit DNS zóny“.
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.
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í.
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“.
Po dokončení konfigurace tokenu API klikněte na „Pokračovat na shrnutí“.
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“.
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
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
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
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
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.comChcete-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.comPokud 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
Stiskněte „Y“ a poté stiskněte
Stiskněte „Y“ a poté stiskněte
Vydává se certifikát Let’s Encrypt SSL. Dokončení chvíli trvá.
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.
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 certbotJak 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] .
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 /
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 nasuchoAkce automatického obnovení je simulována pro každý z vámi vygenerovaných certifikátů Let’s Encrypt SSL.
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.
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.timerJak 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] .
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 obnovitV 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
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.