GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak zabezpečit Nginx pomocí Lets Encrypt na Ubuntu 20.04 / 18.04

Úvod

Každý web, který chce přilákat návštěvníky, musí pro svou doménu zahrnovat šifrování SSL/TLS. Certifikáty SSL/TLS zajišťují bezpečné spojení mezi vaším webovým serverem a prohlížeči.

Let’s Encrypt je bezplatná certifikační autorita, která vám umožňuje takovou ochranu nastavit. Je to nejjednodušší způsob, jak zabezpečit server Nginx.

V tomto článku najdete nejjednodušší způsob, jak zabezpečit server Nginx získáním certifikátů Let’s Encrypt pomocí softwaru Certbot.

Předpoklady

  • Systém se systémem Ubuntu 20.04 (nebo Ubuntu 18.04)
  • Přístup k oknu terminálu/příkazovému řádku
  • Sudo nebo root oprávnění na místních/vzdálených počítačích
  • Nginx nainstalován a nastaven
  • Název registrované domény
  • Blok serveru nakonfigurovaný pro tento název domény

Jak zabezpečit Nginx pomocí Let's Encrypt na Ubuntu 20.04

Krok 1:Nainstalujte Certbot

Certbot je softwarový nástroj s otevřeným zdrojovým kódem pro automatické povolení HTTPS pomocí certifikátů Let’s Encrypt.

Prvním krokem k zabezpečení Nginx pomocí Let’s Encrypt je instalace Certbota. Chcete-li to provést, začněte otevřením okna terminálu a aktualizací místního úložiště:

sudo apt update

Poté si stáhněte a nainstalujte Certbot a jeho plugin Nginx spuštěním:

sudo apt install certbot python3-certbot-nginx

Zadejte y potvrďte instalaci a stiskněte Enter.

Krok 2:Zkontrolujte konfiguraci Nginx

Jak je uvedeno v předpokladech, měli byste již mít registrovanou doménu a blok serveru Nginx pro tuto doménu. Jako příklad je v tomto článku použita doména example.com .

Chcete-li zkontrolovat, zda je nastaven správně, otevřete konfigurační soubor Nginx:

sudo nano /etc/nginx/sites-available/example.com

Poté vyhledejte server_name a ujistěte se, že je nastaven na název vaší domény. Jak chcete zahrnout název domény s a bez www. prefix, řádek by měl vypadat podobně jako ten níže:

server_name example.com www.example.com;

Krok 3:Upravte bránu firewall tak, aby povolovala provoz HTTPS

Dalším krokem je úprava brány firewall tak, aby umožňovala provoz HTTPS.

Pokud jste postupovali podle instalační příručky Nginx, již jste povolili firewall tak, aby umožňoval Nginx HTTP. Při přidávání certifikátů Let’s Encrypt musíte nakonfigurovat bránu firewall pro šifrovaný provoz.

1. Abyste se ujistili, že je váš firewall aktivní a umožňuje přenos HTTPS, spusťte příkaz:

sudo ufw status

Výstup by vám měl sdělit, že UFW je aktivní, a měl by vám poskytnout seznam nastavených pravidel. V následujícím příkladu ukazuje, že firewall povoluje Nginx HTTP provoz, ale ne HTTPS.

Nginx má tři (3) profily, které můžete přidat jako pravidla:

  • Nginx HTTP (otevře port 80)
  • Nginx HTTPS (otevře port 443 – šifrovaný provoz)
  • Nginx Full (otevře port 80 a 443)

2. Chcete-li povolit šifrovaný provoz, můžete přidat Nginx HTTPS profilu nebo použijte Nginx Full a odstraňte stávající pravidlo HTTP Nginx:

a) Povolte provoz Nginx HTTPS spuštěním příkazu:

sudo ufw allow 'Nginx HTTPS'

b) Odeberte Nginx HTTP a místo toho použijte Nginx Full s:

sudo ufw deny 'Nginx HTTP'
sudo ufw allow 'Nginx Full'

3. Pomocí ufw status ověřte, že jste přidali pravidlo, které povoluje provoz HTTPS příkaz.

Krok 4:Získejte certifikát SSL/TLS

Plugin Nginx pro Certbot překonfiguruje Nginx a v případě potřeby znovu načte jeho konfiguraci. Jediné, co tedy musíte udělat, je vygenerovat certifikáty pomocí zásuvného modulu NGINX.

1. Chcete-li to provést, spusťte příkaz:

sudo certbot --nginx -d example.com -d www.example.com

2. Výstup vás požádá o konfiguraci nastavení HTTPS. Chcete-li pokračovat, zadejte svou e-mailovou adresu a odsouhlaste podmínky služby.

3. Jakmile nakonfigurujete HTTPS, Certbot dokončí generování certifikátu a znovu načte Nginx s novým nastavením.

4. Nakonec výstup zobrazí, že jste úspěšně vygenerovali certifikát, a specifikuje umístění certifikátu na vašem serveru.

Krok 5:Povolte automatické obnovení certifikátu

Vzhledem k tomu, že platnost certifikátů Let’s Encrypt vyprší každých 90 dní, Nginx doporučuje nastavit a automaticky obnovit úlohu cron.

1. Nejprve otevřete konfigurační soubor crontab pro aktuálního uživatele:

crontab -e

2. Přidejte úlohu cron, která spouští certbot příkaz, který obnoví certifikát, pokud zjistí, že platnost certifikátu vyprší do 30 dnů. Naplánujte jej tak, aby se spouštěl denně v určený čas (v tomto příkladu tak činí v 05:00):

0 5 * * * /usr/bin/certbot renew --quiet

Úloha cron by také měla obsahovat --quiet atribut, jako v příkazu výše. To instruuje certbot, aby po provedení úlohy nezahrnul žádný výstup.

3. Jakmile přidáte úlohu cron, uložte změny a ukončete soubor.


Ubuntu
  1. Zabezpečte Nginx pomocí Let's Encrypt na Ubuntu 18.04 - Jak na to?

  2. Jak zabezpečit Nginx pomocí Letsencrypt na Ubuntu 20.04

  3. Jak zabezpečit Apache pomocí Lets Encrypt na Ubuntu 18.04

  1. Zabezpečte Nginx pomocí Lets Encrypt na Ubuntu 18.04

  2. Zabezpečte Nginx pomocí Lets Encrypt na Ubuntu 16.04

  3. Jak zabezpečit Nginx pomocí Let's Encrypt na Ubuntu 20.04

  1. Zabezpečte Apache pomocí Lets Encrypt na Ubuntu 18.04

  2. Zabezpečte Nginx pomocí Lets Encrypt na Ubuntu 20.04

  3. Zabezpečte Apache pomocí Lets Encrypt na Ubuntu 20.04