Jak získat bezplatné certifikáty SSL/TLS s Let’s Encrypt a Certbot
Převzato z https://linuxconfig.org/
Let’s Encrypt je certifikační autorita, která je schopna vytvářet a vydávat bezplatné certifikáty SSL/TLS, které můžeme použít k aktivaci šifrování a zabezpečení našich webových stránek. Všichni největší poskytovatelé hostingu umožňují svým zákazníkům žádat o certifikáty Let’s Encrypt uživatelsky přívětivým způsobem prostřednictvím administračních panelů jako Cpanel nebo Plesk. Pokud však máme SSH přístup ke vzdálenému hostiteli, můžeme získat certifikát Let’s Encrypt z příkazového řádku pomocí Certbota. V tomto článku se dozvíme, jak nainstalovat Certbot na nejpoužívanější linuxové distribuce a jak jej použít k získání a správě platných certifikátů Let’s Encrypt.
V tomto tutoriálu se naučíte:
- Co je Let’s Encrypt a jak to funguje
- Jak nainstalovat Certbot na nejpoužívanější distribuce Linuxu
- Jak používat Certbot k získání a správě platných certifikátů SSL/TLS
- Jak používat Certbot ke správě účtů ACME
| Kategorie | Požadavky, konvence nebo použitá verze softwaru |
|---|---|
| Systém | Distribuce-agnostik |
| Software | Certbot |
| jiný | Oprávnění root pro instalaci softwaru |
| Konvence | # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root nebo pomocí sudopříkazu$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel |
Úvod
Aby bylo možné vydat platný certifikát SSL/TLS, musí Let’s Encrypt jako certifikační autorita (CA) ověřit, že máme kontrolu nad doménou, pro kterou chceme certifikát obdržet. Abychom mohli pokračovat s ověřováním domény, musíme nainstalovat klienta, který je schopen během procesu ověřování hovořit s Let’s Encrypt; klient, kterého nainstalujeme a použijeme, je Certbot.
Než budeme pokračovat a uvidíme, jak nainstalovat a používat Certbot, možná by stálo za to investovat nějaký čas a pokusit se pochopit, jak funguje proces ověřování domény. Pro ověření domény provádí Let’s Encrypt takzvané „výzvy“. Nejčastěji používané výzvy jsou HTTP-01 a DNS-01.
Výzva HTTP -01 je ta, kterou uvidíme v akci v tomto tutoriálu. Když je tato výzva provedena, Let’s Encrypt vytvoří token a předá jej klientovi; klient poté přistoupí k vytvoření souboru na našem webu pod konkrétní cestou: http://<OUR-DOMAIN>/.well-known/acme-challenge/<TOKEN>. Let’s Encrypt ověří, že soubor existuje a je platný; Pokud je ověření úspěšné, vydá certifikát. Aby tato výzva fungovala, musí být naše webové stránky vzdáleně přístupné na portu 80 .
Během výzvy DNS-01 se místo toho Let’s Encrypt pokusí ověřit, že máme kontrolu nad položkami DNS. Proces opět začíná tím, že CA vydá token klientovi, který jej použije jako obsah záznamu TXT, který konkrétně vytvoří a vloží do _acme-challenge.<OUR_DOMAIN>. Let’s Encrypt se pokusí dotazovat DNS na tento záznam; pokud najde shodu, vydá certifikát.
Jak jsme již řekli, v tomto případě se budeme držet výzvy HTTP-01. Nyní se podívejme, jak nainstalovat a používat Certbot.
Instalace Certbota
Certbot je bezplatný a open source klient ACME (Automatic Certificate Management Environment) vytvořený nadací Electronic Frontier Foundation ; můžeme ho použít k rozhovoru s Let’s Encrypt, abychom získali platný certifikát SSL/TLS a zabezpečili naše webové stránky. Certbot je napsán v Pythonu (zdrojový kód je dostupný na GitHubu ) a je součástí oficiálních repozitářů mnoha distribucí Linuxu. Chcete-li jej nainstalovat na Debian a systémy založené na Debianu, můžeme spustit:
$ sudo apt install certbot
K provedení instalace na Fedoře místo toho použijeme dnf:
$ sudo dnf nainstalovat certbot
Bohužel Certbot není oficiálně dostupný na Red Hat Enterprise Linux a jeho klonech (např. Rocky Linux). Na těchto systémech jej však můžeme nainstalovat (stejným příkazem, který jsme použili na Fedoře), jakmile přidáme úložiště EPEL jako zdroj softwaru.
Alternativně můžeme nainstalovat Certbot přímo pomocí pip, správce balíčků Pythonu. Měli bychom se vyhnout spuštění pip jako root , proto bychom měli balíček nainstalovat jako neprivilegovaný uživatel:
$ pip nainstalovat certbot
Získání platného certifikátu Let’s Encrypt
Nejzákladnějším způsobem, jak můžeme Certbota použít, je jeho vyvolání pomocí certonlydílčího příkazu. Při použití tohoto dílčího příkazu se Certbot pouze pokusí získat certifikát, aniž by vytvořil konfiguraci specifickou pro webový server:
$ sudo certbot určitě
Jakmile příkaz spustíme, Certbot se nás zeptá, jak se chceme ověřit u certifikační autority. Můžeme se rozhodnout pro spuštění dočasného webového serveru nebo umístění souborů vytvořených během procesu ověřování do existujícího adresáře webroot. To, co chceme používat, závisí na tom, zda již máme spuštěný webový server. Pokud tomu tak není, chceme přistoupit k první možnosti, v opačném případě k druhé. V tomto případě pro jednoduchost použijeme možnost 1:
Jak se chcete ověřit pomocí ACME CA? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: Spusťte dočasný webový server (samostatný) 2: Umístěte soubory do adresáře webroot (webroot) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Vyberte příslušné číslo [1-2] a poté [enter] (stiskněte „c“ pro zrušení): 1
Poté, co vybereme metodu ověření, nás Certbot požádá o poskytnutí e-mailové adresy, na kterou chceme dostávat upozornění na obnovení a zabezpečení. Jen kvůli tomuto článku použiji fiktivní:
Zadejte e-mailovou adresu (používá se pro naléhavá upozornění na obnovení a zabezpečení) (Zadejte 'c' pro zrušení): mymail@provider.com
Než budeme moci pokračovat, musíme si přečíst a přijmout podmínky služeb Let’s Encrypt:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Přečtěte si prosím Podmínky služby na https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf. Musíš souhlasit s registrací na serveru ACME. Souhlasíš? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A) ano/(N) ne: ano
Můžeme se rozhodnout, zda chceme, aby nám Electronic Frontier Foundation posílala e-maily o novinkách, budoucích iniciativách a kampaních:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Byli byste ochotni, jakmile bude váš první certifikát úspěšně vystaven sdílejte svou e-mailovou adresu s nadací Electronic Frontier Foundation partnerem projektu Let's Encrypt a neziskové organizace, která vyvíjí Certbot? Rádi bychom vám poslali e-mail o naší práci při šifrování webu, Zprávy, kampaně a způsoby podpory digitální svobody EFF. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A) ano/(N) ne: n
Jako poslední krok musíme zadat doménu, pro kterou chceme získat certifikát:
Zadejte prosím názvy domén, které chcete mít na svém certifikátu (čárka a/nebo oddělené mezerou) (zadejte 'c' pro zrušení): mojedomena.com
Certbot nám dá vědět, zda se mu podařilo získat certifikát:
Certifikát úspěšně přijat. Certifikát je uložen na: /etc/letsencrypt/live/mydomain.com/fullchain.pem Klíč je uložen na adrese: /etc/letsencrypt/live/mydomain.com/privkey.pem Platnost tohoto certifikátu vyprší 26.06.2024. Tyto soubory budou aktualizovány při obnovení certifikátu. Certbot nastavil naplánovanou úlohu k automatickému obnovení tohoto certifikátu na pozadí.
Výstup obsahuje informace o cestě, kam byl certifikát uložen, a datu vypršení jeho platnosti. Stávající certifikáty jsou automaticky obnovovány úlohou naplánovanou pomocí systemd.timer ( /usr/lib/sytemd/system/certbot.timer), která se spouští dvakrát denně. Vezměte prosím na vědomí, že je možné provést omezený počet požadavků na Let’s Encrypt během určitého časového intervalu, takže pokud máte pocit, že chcete s Certbotem experimentovat, měli byste tuto --dry-runmožnost použít, pokud je to možné.
Jakmile známe umístění certifikátu a soukromého klíče, můžeme odpovídajícím způsobem upravit konfiguraci našeho webového serveru. Pokud však nechceme konfiguraci provádět ručně, můžeme dát pokyn Certbotovi, aby to udělal za nás. Podívejme se jak.
Automatické vytvoření konfigurace webového serveru
Aby bylo možné použít certifikát, který jsme právě získali od Let’s Encrypt, náš webový server potřebuje znát jeho umístění. Konfiguraci serveru můžeme upravit pomocí požadovaných direktiv ručně, nebo, pokud potřebujeme proces automatizovat, můžeme nechat Certbot, aby to udělal za nás. Certbot je schopen automaticky vytvářet konfigurace pro Apache a Nginx díky vyhrazeným pluginům. Chcete-li je nainstalovat na Debian a systémy založené na Debianu, spustíme:
$ sudo apt install python3-certbot-apache python3-certbot-nginx
Na systémech založených na Fedoře místo toho:
$ sudo dnf nainstalovat python3-certbot-apache python3-certbot-nginx
Jakmile jsou balíčky nainstalovány, abychom nechali Certbot nakonfigurovat náš webový server, můžeme použít možnosti --apachenebo --nginx. Pro načtení certifikátu a automatické vytvoření konfigurace Apache bychom například spustili:
$ sudo certbot --apache
Konfigurace Apache je na systémech Debian uložena jako /etc/apache2/sites-available/000-default-le-ssl.conf. Mimo jiné obsahuje následující směrnice:
ServerName mydomain.com SSLCertificateFile /etc/letsencrypt/live/mydomain.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.com/privkey.pem Zahrňte /etc/letsencrypt/options-ssl-apache.conf
Spuštění Certbotu neinteraktivně
V předchozích příkladech jsme spouštěli Certbot interaktivně. Někdy však interakce uživatele není možná, proto musíme spustit Certbot bez dozoru a poskytnout požadované informace prostřednictvím příslušných příznaků. V níže uvedeném příkladu se pokoušíme získat certifikát pro doménu „mydomain.com“, čímž vytvoříme ad-hoc webový server pro ověření:
$ sudo certbot určitě \ --neinteraktivní \ --samostatný \ --email mymail@provider.com \ --souhlasím \ --no-eff-e-mail \ --domains mydomain.com
První možnost, kterou jsme použili, je --non-interactive: dává pokyn Certbotu, aby běžel, aniž by kdy žádal o vstup uživatele, což je přesně to, čeho chceme dosáhnout. S --standalonevolbou, kterou jsme uvedli, chceme spustit webový server a použít jej pro autentizaci.
--emailmožnost, a použili jsme
--agree-tossouhlas se smluvními podmínkami Let’s Encrypt. Dále jsme uvedli, že nechceme prostřednictvím této
--no-eff-mailmožnosti sdílet naši adresu s EFF. Nakonec jsme předali doménu, pro kterou chceme získat certifikát, jako argument pro
--domains.
Co když chceme, aby Certbot navíc vytvořil konfiguraci Apache? Vše, co musíme udělat, je přidat --installermožnost a předat název pluginu, který by měl být použit, jako argument:
$ sudo certbot \ --neinteraktivní \ --samostatný \ --email mymail@provider.com \ --souhlasím \ --no-eff-e-mail \ --domains mydomain.com \ --instalátor apache
Správa certifikátů
Pro zobrazení informací o certifikátech, které jsme získali pomocí certbotu, můžeme použít certificatespříkaz:
$ sudo certifikáty certbot
Pokud certifikát téměř dosáhl data vypršení platnosti a my jej chceme okamžitě obnovit, aniž bychom se spoléhali na naplánovanou úlohu, můžeme použít příkaz renew. Všechny certifikáty, které jsme dříve získali s Certbotem, budou obnoveny:
$ sudo certbot obnovit
Chcete-li certifikát zrušit , místo toho můžeme použít revokepříkaz. Na certifikát lze odkazovat jménem nebo cestou s možnostmi --cert-namea --cert-path. V níže uvedeném příkladu zrušíme certifikát s názvem „mydomain.com“:
$ sudo certbot revoke --cert-name mydomain.com
Nakonec k odstranění certifikátu použijeme příkaz delete:
$ sudo certbot delete --cert-name mydomain.com
Správa účtu ACME
Ke správě našeho ACME účtu můžeme použít Certbot. K zobrazení informací o účtu používáme show_accountpříkaz:
$ sudo certbot show_account
Příkaz vrátí informace, jako je adresa URL účtu a související e-mail:
Podrobnosti účtu pro server https://acme-v02.api.letsencrypt.org/directory: URL účtu: https://acme-v02.api.letsencrypt.org/acme/acct/0000000000 E-mailový kontakt: mymail@provider.com
Pro zrušení registrace účtu můžeme použít unregisterpříkaz:
$ sudo certbot zrušit registraci
Budeme vyzváni k potvrzení, že chceme deaktivovat náš účet:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Opravdu chcete svůj účet neodvolatelně deaktivovat? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (D)eaktivovat/(A)přerušit:
Nakonec k registraci nového účtu použijeme příkaz
registera poskytneme požadované informace, buď interaktivně, nebo prostřednictvím vyhrazených možností, např.:
$ sudo certbot register --email mymail@provider.com --agree-tos --no-eff-email
Výslovná registrace účtu obvykle není nutná, protože se vytváří za běhu, když poprvé použijeme Certbot, jak jsme viděli v předchozích příkladech.
Závěrečné myšlenky
Zajištění bezpečné a šifrované komunikace s našimi webovými stránkami je zásadní. Let’s Encrypt je otevřená certifikační autorita, která je schopna zdarma uvolnit certifikáty SSL/TLS, jakmile ověří, že máme kontrolu nad doménou. Abychom mohli mluvit s Let’s Encrypt během výzvy, musíme použít klienta ACME, jako je Certbot. V tomto tutoriálu jsme viděli, jak nainstalovat Certbot a jak jej použít k získání a správě platných certifikátů.

Komentáře
Jak získat bezplatné certifikáty SSL/TLS s Let’s Encrypt a Certbot — Žádné komentáře
HTML tags allowed in your comment: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>