Vyhledávání na webu

Jak zabezpečit Nginx pomocí Let's Encrypt na CentOS 8


Let’s Encrypt, založený v dubnu 2016 nadací Electronic Frontier Foundation (EFF), je bezplatný a automatizovaný digitální certifikát, který poskytuje webům šifrování TLS zcela zdarma.

Cílem certifikátu Let’s Encrypt je automatizovat ověřování, vytváření, podepisování a také automatické obnovování bezpečnostního certifikátu. Tento certifikát umožňuje šifrovaná připojení k webovým serverům pomocí protokolu HTTPS jednoduchým, bezproblémovým způsobem a bez jakýchkoli složitostí. Certifikát je platný pouze 90 dní, po kterých lze aktivovat automatické obnovení.

Doporučená četba: Jak zabezpečit Apache pomocí Let's Encrypt SSL certifikátu na CentOS 8

V tomto článku si ukážeme, jak si můžete nainstalovat Let's Encrypt, abyste získali bezplatný certifikát SSL pro zabezpečení webového serveru Nginx na CentOS 8 ( stejné pokyny fungují také na RHEL 8). Vysvětlíme vám také, jak si SSL certifikát automaticky obnovit.

Předpoklady

Než budeme pokračovat, ujistěte se, že máte pod kontrolou následující.

1. Plně kvalifikovaný název domény (FQDN) odkazující na vyhrazenou IP adresu webového serveru. Toto je třeba nakonfigurovat v klientské oblasti vašeho poskytovatele webhostingu DNS. V tomto tutoriálu používáme název domény linuxtechwhiz, který ukazuje na IP adresu 34.70.245.117.

2. Můžete to také potvrdit provedením dopředného vyhledávání pomocí příkazu dig, jak je znázorněno.

dig linuxtechwhiz.info

3. Nginx nainstalovaný a spuštěný na webovém serveru. Můžete to potvrdit přihlášením do terminálu a spuštěním příkazu níže. Pokud Nginx není nainstalován, postupujte podle našeho článku a nainstalujte Nginx na CentOS 8.

sudo systemctl status nginx

4. Můžete také ověřit návštěvou adresy URL webového serveru ve webovém prohlížeči.

http://server-IP-or-hostname

Z adresy URL jasně vidíme, že stránka není zabezpečená, a tedy ani šifrovaná. To znamená, že jakékoli požadavky odeslané na webový server mohou být zachyceny, což zahrnuje důležité a důvěrné informace, jako jsou uživatelská jména, hesla, čísla sociálního pojištění a informace o kreditních kartách, abychom zmínili alespoň některé.

Nyní si ušpiníme ruce a nainstalujeme Let’s Encrypt.

Krok 1. Nainstalujte Certbot v CentOS 8

Chcete-li nainstalovat certifikát Let’s Encrypt, musíte mít nejprve nainstalovaného certbota. Toto je rozšiřitelný klient, který načítá bezpečnostní certifikát z Let’s Encrypt Authority a umožňuje automatizovat ověřování a konfiguraci certifikátu pro použití webovým serverem.

Stáhněte si certbot pomocí příkazu curl.

sudo curl -O https://dl.eff.org/certbot-auto

Poté přesuňte certifikát do adresáře /usr/local/bin.

sudo mv certbot-auto /usr/local/bin/certbot-auto

Dále přidělte souboru certbot oprávnění k souboru, jak je znázorněno.

chmod 0755 /usr/local/bin/certbot-auto

Krok 2. Nakonfigurujte blok serveru Nginx

Blok serveru v Nginx je ekvivalentem virtuálního hostitele v Apache. Nastavení serverových bloků umožňuje nejen nastavit více webových stránek na jednom serveru, ale také umožňuje certbotu prokázat vlastnictví domény Certifikační autoritě – CA.

Chcete-li vytvořit blok serveru, spusťte zobrazený příkaz.

sudo vim /etc/nginx/conf.d/www.linuxtechwhiz.info

Nezapomeňte nahradit název domény svým vlastním názvem domény. Poté vložte konfiguraci níže.

server {
   server_name www.linuxtechwhiz.info;
   root /opt/nginx/www.linuxtechwhiz.info;

   location / {
       index index.html index.htm index.php;
   }

   access_log /var/log/nginx/www.linuxtechwhiz.info.access.log;
   error_log /var/log/nginx/www.linuxtechwhiz.info.error.log;

   location ~ \.php$ {
      include /etc/nginx/fastcgi_params;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
}

Uložte soubor a ukončete textový editor.

Krok 3: Nainstalujte Lets Encrypt Certificate na CentOS 8

Nyní pomocí příkazu certbot inicializujte načítání a konfiguraci bezpečnostního certifikátu Let’s Encrypt.

sudo /usr/local/bin/certbot-auto --nginx

Tento příkaz spustí a nainstaluje několik balíčků Pythonu a jejich závislostí, jak je znázorněno.

Poté bude následovat interaktivní výzva, jak je znázorněno:

Pokud vše proběhlo v pořádku, měli byste na samém konci vidět blahopřání.

Chcete-li potvrdit, že je váš web Nginx zašifrován, znovu načtěte webovou stránku a sledujte symbol visacího zámku na začátku adresy URL. To znamená, že web je zabezpečen pomocí šifrování SSL/TLS.

Chcete-li získat další informace o bezpečnostním certifikátu, klikněte na symbol visacího zámku a vyberte možnost „Certifikát“.

Další informace o bezpečnostním certifikátu se zobrazí, jak je uvedeno níže.

Chcete-li navíc otestovat sílu bezpečnostního certifikátu, přejděte na https://www.ssllabs.com/ssltest/ a najděte přesnější a podrobnější analýzu stavu bezpečnostního certifikátu.

Krok 4. Obnovení certifikátu Let’s Encrypt

Jak jsme viděli dříve, bezpečnostní certifikát je platný pouze po dobu 90 dnů a před vypršením platnosti je třeba jej obnovit.

Proces obnovy certifikátu můžete simulovat nebo otestovat spuštěním příkazu:

sudo /usr/local/bin/certbot-auto renew --dry-run

Závěr

Tímto končí tento tutoriál o zabezpečení Nginx pomocí Let’s Encrypt na CentOS 8. Let’s Encrypt nabízí efektivní a bezproblémový způsob zabezpečení vašeho webového serveru Nginx, který by jinak byl složitý manuál.

Váš web by nyní měl být plně zašifrován. Několik týdnů před datem vypršení platnosti certifikátu vás EFF upozorní e-mailem, abyste si certifikát obnovili, aby nedošlo k přerušení, které může nastat kvůli vypršení platnosti certifikátu. To je pro dnešek vše, kluci!