GNU/Linux >> Znalost Linux >  >> Debian

Jak nainstalovat Let's Encrypt SSL v Nginx na Debian 11

Let’s Encrypt je certifikační autorita, která poskytuje bezplatné SSL certifikáty pro webové stránky. Nenabízí však pouze certifikáty SSL; automatizuje také vytváření, ověřování, podepisování, implementaci a obnovování certifikátů.

Let’s Encrypt je největší certifikační autorita na světě, kterou používá více než 250 milionů webů. Byl spuštěn v listopadu 2014 s cílem, aby všechny weby byly zabezpečené a využívaly HTTPS.

V současnosti Let’s Encrypt podporuje automatickou instalaci certifikátů na Apache, Nginx, Plex a Haproxy.

Zde uvidíme, jak nainstalovat Let’s Encrypt SSL Certificate pro Nginx na Debian 11.

Předpoklady

Než budete pokračovat dále, doporučuji vám nastavit instalační webový server Nginx ve vašem systému.

ČTĚTE: Jak nainstalovat LEMP Stack na Debian 11

Vytvořit virtuální hostitele

Nejprve budeme muset vytvořit virtuálního hostitele Nginx, který bude obsluhovat HTTP verzi vašeho webu.

sudo nano /etc/nginx/conf.d/www.itzgeek.net.conf

Pro svůj web použijte níže uvedenou konfiguraci. Nezapomeňte změnit hodnoty na základě vašeho požadavku.

Sekci PHP Fast CGI můžete odebrat, pokud nepoužíváte CMS jako WordPress, Joomla atd. nebo aplikace založené na PHP.

server {
   server_name itzgeek.net www.itzgeek.net;
   root /usr/share/nginx/www.itzgeek.net/;

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

   access_log /var/log/nginx/www.itzgeek.net.access.log;
   error_log /var/log/nginx/www.itzgeek.net.error.log;

   location ~ \.php$ {
      include fastcgi_params;
      fastcgi_intercept_errors on;
      fastcgi_pass unix:/run/php/php7.4-fpm.sock;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
}

Jakmile vytvoříte konfigurační soubor virtuálního hostitele, vytvořte kořenový adresář pro uložení souborů vašeho webu.

sudo mkdir -p /usr/share/nginx/www.itzgeek.net/

Potom změňte vlastnictví a skupinu adresáře.

sudo chown -R www-data:www-data /usr/share/nginx/www.itzgeek.net/

Nakonec umístěte testovací soubor HTML do kořenového adresáře dokumentu vaší domény.

echo "This is a test site @ www.itzgeek.net" | sudo tee /usr/share/nginx/www.itzgeek.net/index.html

Nyní budete muset restartovat službu Nginx, abyste si znovu přečetli konfigurace.

sudo systemctl restart nginx

Vytvořit / aktualizovat záznam DNS

Chcete-li vygenerovat certifikát Let's Encrypt SSL pro vaši doménu, budete muset svou doménu nasměrovat na IP vašeho serveru. Přejděte tedy ke svému registrátorovi domény a vytvořte záznam A/CNAME pro svou doménu. Například níže uvedený obrázek ukazuje záznam A/CNAME pro doménu www.itzgeek.net.

Rozšíření změn DNS záznamů bude nějakou dobu trvat. Počkejte tedy několik minut až hodin, v závislosti na TTL, kterou nastavíte pro DNS záznam.

Nainstalujte Let's Encrypt SSL Certificate for Nginx

Nainstalujte Certbot

Kromě nasměrování domény na IP vašeho serveru budete také muset nainstalovat klienta Certbot ACME do vašeho systému. Klient Certbot zvládne vydání certifikátu a instalaci bez prostojů.

Certbot je nyní dostupný jako snap balíček pro operační systém Debian. Nejprve tedy nainstalujte balíček Snapd.

sudo apt update

sudo apt install -y snapd

Poté aktualizujte snapd na nejnovější verzi.

sudo snap install core; sudo snap refresh core

Nakonec nainstalujte klienta Certbot pomocí příkazu snap.

sudo snap install --classic certbot

sudo ln -s /snap/bin/certbot /usr/bin/certbot

Nainstalujte Let's Encrypt Certificate

Pomocí příkazu certbot vytvořte certifikát Let’s Encrypt a nakonfigurujte Nginx, aby certifikát používal.

sudo certbot --nginx

Postupujte podle interaktivní výzvy a nainstalujte certifikát.

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): [email protected] << Enter Email ID

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y  << Agree to Terms and Conditions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N << Subscriber to Newsletter
Account registered.

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: itzgeek.net
2. www.itzgeek.net
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1,2 << Choose Site to Install Let's Encrypt SSL Certificate
Requesting a certificate for www.itzgeek.net

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/www.itzgeek.net/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/www.itzgeek.net/privkey.pem
This certificate expires on 2022-01-17.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for www.itzgeek.net to /etc/nginx/conf.d/www.itzgeek.net.conf
Congratulations! You have successfully enabled HTTPS on https://www.itzgeek.net

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Jakmile aktivujete HTTPS pro svou doménu, klient Certbot umístí nezbytná pravidla přepisu pro přesměrování provozu z HTTP na web HTTPS.

V mém případě to umístilo dvě pravidla pro níže uvedená přesměrování.

  1. http://itzgeek.net>> https://itzgeek.net
  2. http://www.itzgeek.net>> https://www.itzgeek.net

Jak vidíte, první přesměrování není dosaženo na www HTTPS verzi webu. Takže možná budete muset postupovat podle níže uvedené části a nastavit to.

Přesměrujte požadavky HTTP bez www na www HTTPS pomocí Nginx (volitelné)

Možná budete chtít nakonfigurovat server Nginx tak, aby přesměroval provoz z webu HTTP bez www na web WWW HTTPS, tj. http://itzgeek.net>> https://www.itzgeek.net .

sudo nano /etc/nginx/conf.d/www.itzgeek.net.conf

Přidejte zvýrazněné přesměrování do sekce SSL.

    listen 443 ssl; # managed by Certbot
 .    .    .
 .    .    .
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

    if ($host = itzgeek.net) {
        return 301 https://www.itzgeek.net$request_uri;
    }

Poté restartujte službu Nginx.

sudo systemctl restart nginx

Ověřte certifikát Let's Encrypt

Certifikát Let’s Encrypt můžete ověřit na svém webu.

http://vaše-http-webové-stránky

NEBO

https://vaše-https-webové-stránky

Nyní byste měli získat verzi svého webu HTTPS.

Test certifikát SSL

Na níže uvedené adrese URL otestujte svůj certifikát Let’s Encrypt SSL na případné problémy a hodnocení zabezpečení.

https://www.ssllabs.com/ssltest/analyze.html?d=www.itzgeek.net

Obnovení certifikátu Let's Encrypt

Certifikáty Let’s Encrypt mají platnost 90 dní a je velmi vhodné certifikáty před vypršením platnosti obnovit. Díky službě systemd, která běží dvakrát denně a automaticky obnovuje certifikáty, kterým brzy vyprší platnost.

Doporučuji však spustit níže uvedený příkaz, abyste simulovali automatické obnovení vašeho certifikátu.

sudo certbot renew --dry-run

Výstup:

Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/www.itzgeek.net.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Account registered.
Simulating renewal of an existing certificate for www.itzgeek.net

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations, all simulated renewals succeeded: 
  /etc/letsencrypt/live/www.itzgeek.net/fullchain.pem (success)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Pokud výstup potvrdí, že obnovení funguje správně, automatické obnovení proběhne podle očekávání.

Závěr

To je vše. Doufám, že jste se naučili, jak nainstalovat Let’s Encrypt SSL certifikát pro Nginx na Debian 11. Podělte se o svůj názor v sekci komentářů.


Debian
  1. Jak nainstalovat Nginx na Debian 9

  2. Jak nainstalovat Let's Encrypt SSL na Ubuntu 18.04 s Nginx

  3. Jak nainstalovat Microweber na Debian 9

  1. Jak nainstalovat Let’s Encrypt SSL pro NGINX na Rocky Linux 8

  2. Jak nainstalovat Drupal 9 s Nginx a nechat šifrovat SSL na Debian 10

  3. Jak nainstalovat Nginx na Debian 11

  1. Jak nastavit Let's Encrypt SSL certifikát s Nginx na Debian 10 / Debian 9

  2. Jak nainstalovat WordPress s Apache a Let's Encrypt SSL na Debian 11

  3. Jak nainstalovat Let’s Encrypt SSL v Apache na Debianu 11