Probíhá hledání...

Nastavení Let's Encrypt s Nginx serverem

Let's Encrypt je certifikační autorita, která nabízí jednoduchou cestu k vytvoření a instalaci TLS/SSL certifikátu. Proces se zjednodušuje použitím klienta Certbot, který automatizuje většinu, ne-li všechny, potřebné kroky.

Pro následující kroky bude potřeba:

  • Ubuntu 16.04 server, sudo "non-root" uživatele a firewall.
  • Doménu - např "mojedomena.cz".
  • Nastavené DNS záznamy pro váš server.
  • Záznam "A" s "mojedomena.cz" mířeným na veřejnou adresu vašeho serveru.
  • Záznam "A" s "www.mojedomena.cz" mířeným na veřejnou adresu vašeho serveru.
  • Nainstalovaný Nginx.

1. Instalace Certbot klienta

První krok k použití Let's Encrypt k vytvoření SSL certifikátu je mít nainstalovaný Certbot na vašem serveru. Certbot je velmi aktivně vyvíjen, takže balíčky které nabízí ubuntu jsou často zastaralé. Proto přidáme adresář od vývojářu kde se nachází aktuální balíčky.

Přidáme adresář

sudo add-apt-repository ppa:certbot/certbot

Poté aktualizujeme seznam balíčků.

sudo apt-get update

Nyní můžeme nainstalovat Certbot Nginx balíček

sudo apt-get install python-certbot-nginx

Certbot je nyní připavený k použití, ale ke konfiguraci SSL pro Nginx ještě potřebujeme ověřit nastavení Nginx.

2. Potvrzení nastavení Nginx

Certbot musí být schopný najít správny "server" blok pro automatické konfiguraci SSL. Přesněji certbot hledá "server_name". Náš "server" blok se nachází ve složce /etc/nginx/sites-available/mojedomena.cz

K ověření, můžeme použít editor "nano" nebo váš oblíbený textový editor.

sudo nano /etc/nginx/sites-available/mojedomena.cz

Najdeme řádek se "server_name". Mělo by to vypadat asi takhle.

server_name mojedomena.cz www.mojedomena.cz

Pokud to takhle vypadá, můžete ukončit editor a přesunout se na další krok. Pokud to takhle nevypadá, upravíme řádek podle předlohy. Poté uložíme soubor a ověříme správnost syntaxe.

sudo nginx -t

Pokud se vyskytne chyba, otevřete znova soubor v textovém editoru a zkontrolujte překlepy nebo chybějící písmenka. Když už je váš soubor v pořádku znovu načteme Nginx.

sudo systemctl reload ngi

3. Povolení HTTPS přes Firewall

Aktuální nastavení firewallu můžeme zobrazit příkazem

sudo ufw status //Výstup Status: active

Seznam dostupných profilů si můžeme zobrazit příkazem

sudo ufw app list

K povolení HTTPS provozu, potřebujeme povolit profil "Nginx Full"

sudo ufw allow 'Nginx Full'

Nyní můžeme použít certbot pro vytvoření certifikátu

4. Získání SSL Certifikátu

Certbot nabízí řadu cest jak získat SSL certifikát, přes různé pluginy. Nginx plugin se postará o aktuální konfiguraci Nginx a obnovení nastavení kdykoliv je potřeba.

sudo certbot --nginx -d mojedomena.cz -d www.mojedomena.cz

Pokud je tohle poprvé co zapínáte certbot, budete vyzván zadat e-mailovou adresu a souhlasit s podmínky použití. Poté certbot začně komunikovat s Let's Encrypt servery, následně provede serii testů k ověření domény pro kterou se certifikát vytváří. Pokud testy skončí úspěšně, certbot se zeptá jak chcete nastavit 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):

Nastavení bude aktualizováno a Nginx se znovu načte k obdržení nového nastavení. Certbot zobrazí zprávu s úspěšným vytvořením SSL Certifikátu a dalšími informacemi. Nyní váš certifikát je stažen, nainstalován a načten. Můžete zkusit načíst vaši stránku použitím "https://". Nyní by váš prohlížeč měl ukazovat že stránka je zabezpečená, nejspíš zelenou ikonou zámku.

5. Automatické obnovování certbot

SSL certifikát je platný pouze na 90 dnů. Poté ho budeme muset obnovit. Pro automatické obnovování můžeme použít službu "cron".

Otevřeme si konfigurační soubor pro "cron" příkazem

sudo crontab -e

Vybereme editor pro použití a na poslední řádek konfiguračního souboru přídáme řádek

15 3 * * * /usr/bin/certbot renew --quiet

Tento řádek nám každy den ve 3:15 obnoví certifikát.

Komentáře

Pro odeslání komentáře je nutno být přihlášen