Let's Encrypt je bezplatná a otevřená certifikační autorita (CA). Poskytuje jednoduchý způsob, jak získat, nainstalovat a obnovit bezplatné certifikáty TLS/SSL.
Zde v LinuxAPT, jako součást našich služeb správy serveru, pravidelně pomáháme našim zákazníkům provádět související dotazy Nginx.
V této souvislosti se podíváme na to, jak získat a nainstalovat bezplatný certifikát Let’s Encrypt SSL a Secure Nginx na serveru Ubuntu 18.04.
Jak nainstalovat Let's Encrypt na Ubuntu?
Před provedením tohoto postupu instalace se ujistěte, že jsou splněny následující požadavky:
- Server Ubuntu s uživatelem bez oprávnění root s právy sudo.
- Nginx musí být nainstalován a konfigurován, jak je uvedeno v této příručce.
- Mějte pro svou doménu blok serveru Nginx, jak je uvedeno v této příručce.
- Název vaší domény by měl ukazovat na IP adresu vašeho serveru.
Nyní postupujte podle kroků a použijte nástroj Certbot k získání bezplatného certifikátu SSL pro Nginx na serveru Ubuntu 18.04.
1. Nainstalujte klienta Certbot
SSL certifikáty Let's Encrypt můžete snadno získat, nainstalovat a obnovit pomocí klientského balíčku Certbot. Je užitečné nakonfigurovat webové servery tak, aby používaly certifikáty SSL. Balíček certbot je součástí výchozích repozitářů Ubuntu.
Nejprve aktualizujeme index seznamu balíčků zadáním:
$ sudo apt update
Nyní nainstalujte klienta Certbot provedením níže uvedeného příkazu:
$ sudo apt install python-certbot-nginx
Také můžete ověřit, zda je certbot nainstalován úspěšně nebo ne, zadáním:
$ certbot --version
2. Nakonfigurujte bránu firewall
Pokud je váš server chráněn UFW firewallem, musíte firewall upravit tak, aby umožňoval provoz HHTPS.
Chcete-li zobrazit aktuální nastavení podle typu:
$ sudo ufw status
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
Chcete-li získat provoz HTTPS, musíte povolit úplný profil Nginx a odstranit nadbytečný povolený profil HTTP Nginx:
$ sudo ufw allow 'Nginx Full'
$ sudo ufw delete allow 'Nginx HTTP'
Nyní bude stav vypadat takto:
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx Full (v6) ALLOW Anywhere (v6)
3. Získejte certifikát Let's Encrypt SSL na Nginx
Certifikáty SSL můžete získat několika způsoby.
i. Zde použijeme klienta certbot k získání certifikátu SSL:
$ sudo certbot --nginx -d example.com -d www.example.com
Zde požadujeme domény example.com a www.example.com. Pokud se jedná o první instalaci, požádá vás o zadání e-mailové adresy a souhlas s podmínkami. Zadaná e-mailová adresa bude použita pro zasílání e-mailových upozornění souvisejících s obnovením a vypršením platnosti SSL.
Dále, pokud je ověření úspěšné, budete požádáni o konfiguraci nastavení HTTPS:
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
ii. Vyberte možnost 1 nebo 2 podle svého výběru a pokračujte stisknutím klávesy Enter. Nginx Server Blocks se aktualizuje na základě vámi vybrané možnosti a znovu načte Nginx, aby se projevila nová nastavení.
Konečně je vaše doména zabezpečena pomocí Let's Encrypt SSL certifikátu. Můžete to ověřit návštěvou svého webu pomocí protokolu HTTPS.
Jak nastavit automatické obnovení pro Let's Encrypt SSL certifikát?
Certifikáty Let's Encrypt SSL mají krátkou životnost 90 dní, takže je třeba je před vypršením obnovit.
i. Certifikát SSL můžete obnovit před vypršením jeho platnosti zadáním:
$ sudo certbot renew
ii. Kromě toho můžete nastavit proces automatického obnovení pro certifikáty Let’s Encrypt SSL přidáním cronjob. Spuštěním níže uvedeného příkazu otevřete crontab:
$ sudo crontab -e
iii. Dále přidejte níže uvedený řádek na konec souboru. Příkaz spustí dvakrát denně a obnoví se, pokud platnost certifikátu brzy vyprší:
0 */12 * * * root test -x /usr/bin/certbot -a ! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew
iv. Uložte a zavřete soubor.
v. Proces automatického obnovení certbot můžete také ověřit zadáním:
$ sudo certbot renew --dry-run