GNU/Linux >> LINUX-Kenntnisse >  >> Debian

So installieren Sie Let’s Encrypt SSL in Nginx unter Debian 11

Let’s Encrypt ist eine Zertifizierungsstelle, die kostenlose SSL-Zertifikate für Websites bereitstellt. Es bietet jedoch nicht nur SSL-Zertifikate; Es automatisiert auch die Zertifikatserstellung, -validierung, -signierung, -implementierung und -erneuerung von Zertifikaten.

Let’s Encrypt ist die weltweit größte Zertifizierungsstelle, die von mehr als 250 Millionen Websites verwendet wird. Es wurde im November 2014 mit dem Ziel eingeführt, dass alle Websites sicher sind und HTTPS verwenden.

Derzeit unterstützt Let’s Encrypt die automatische Installation von Zertifikaten auf Apache, Nginx, Plex und Haproxy.

Hier sehen wir, wie Sie das Let’s Encrypt SSL-Zertifikat für Nginx unter Debian 11 installieren.

Voraussetzungen

Ich empfehle Ihnen, die Installation des Nginx-Webservers auf Ihrem System einzurichten, bevor Sie fortfahren.

LESEN: So installieren Sie den LEMP-Stack unter Debian 11

Virtualhost erstellen

Zuerst müssen wir einen virtuellen Nginx-Host erstellen, um die HTTP-Version Ihrer Website bereitzustellen.

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

Verwenden Sie die folgende Konfiguration für Ihre Website. Denken Sie daran, die Werte entsprechend Ihren Anforderungen zu ändern.

Sie können den PHP Fast CGI-Abschnitt entfernen, wenn Sie keine CMS wie WordPress, Joomla usw. oder PHP-basierte Anwendungen verwenden.

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;
   }
}

Nachdem Sie die Konfigurationsdatei des virtuellen Hosts erstellt haben, erstellen Sie ein Stammverzeichnis für die Dateien Ihrer Website.

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

Ändern Sie dann den Eigentümer und die Gruppe des Verzeichnisses.

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

Platzieren Sie abschließend die Test-HTML-Datei im Dokumentenstammverzeichnis Ihrer Domain.

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

Jetzt müssen Sie den Nginx-Dienst neu starten, um die Konfigurationen erneut zu lesen.

sudo systemctl restart nginx

DNS-Eintrag erstellen/aktualisieren

Um das SSL-Zertifikat von Let’s Encrypt für Ihre Domain zu generieren, müssen Sie Ihre Domain auf Ihre Server-IP verweisen. Gehen Sie also zu Ihrem Domain-Registrar und erstellen Sie einen A/CNAME-Eintrag für Ihre Domain. Das folgende Bild zeigt beispielsweise den A/CNAME-Datensatz für die Domain www.itzgeek.net.

Es dauert einige Zeit, bis Änderungen an DNS-Einträgen weitergegeben werden. Warten Sie also je nach TTL, die Sie für den DNS-Eintrag festgelegt haben, einige Minuten bis Stunden.

Installieren Sie das SSL-Zertifikat von Let’s Encrypt für Nginx

Certbot installieren

Sie müssen nicht nur eine Domain auf Ihre Server-IP verweisen, sondern auch den Certbot ACME-Client auf Ihrem System installieren. Der Certbot-Client verarbeitet die Ausstellung und Installation von Zertifikaten ohne Ausfallzeit.

Certbot ist jetzt als Snap-Paket für das Debian-Betriebssystem verfügbar. Installieren Sie also zuerst das Snapd-Paket.

sudo apt update

sudo apt install -y snapd

Aktualisieren Sie dann den Snapd auf die neueste Version.

sudo snap install core; sudo snap refresh core

Installieren Sie schließlich den Certbot-Client mit dem Snap-Befehl.

sudo snap install --classic certbot

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

Installieren Sie das Let’s Encrypt-Zertifikat

Verwenden Sie den Befehl certbot, um ein Let’s Encrypt-Zertifikat zu erstellen, und konfigurieren Sie Nginx für die Verwendung des Zertifikats.

sudo certbot --nginx

Folgen Sie der interaktiven Aufforderung und installieren Sie das Zertifikat.

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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Sobald Sie HTTPS für Ihre Domain aktivieren, platziert der Certbot-Client die erforderlichen Umschreibungsregeln, um den Datenverkehr von HTTP auf die HTTPS-Site umzuleiten.

In meinem Fall wurden zwei Regeln für die folgenden Weiterleitungen platziert.

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

Wie Sie sehen können, wird die erste Weiterleitung nicht auf die www-HTTPS-Version der Website erreicht. Daher müssen Sie möglicherweise den folgenden Abschnitt befolgen, um es einzurichten.

Nicht-www-HTTP-Anforderungen mit Nginx an www-HTTPS umleiten (optional)

Möglicherweise möchten Sie den Nginx-Server so konfigurieren, dass er den Datenverkehr von der Nicht-www-HTTP-Site auf die WWW-HTTPS-Site umleitet, d. h. http://itzgeek.net>> https://www.itzgeek.net .

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

Fügen Sie die hervorgehobene Umleitung im SSL-Abschnitt hinzu.

    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;
    }

Starten Sie dann den Nginx-Dienst neu.

sudo systemctl restart nginx

Verifizieren Sie das Let’s Encrypt-Zertifikat

Sie können das Let’s Encrypt-Zertifikat überprüfen, indem Sie Ihre Website besuchen.

http://Ihre-http-Website

ODER

https://Ihre-https-Website

Sie sollten jetzt die HTTPS-Version Ihrer Website erhalten.

SSL-Zertifikat testen

Testen Sie Ihr SSL-Zertifikat von Let’s Encrypt auf Probleme und seine Sicherheitsbewertungen, indem Sie zur folgenden URL gehen.

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

Let’s Encrypt-Zertifikat erneuern

Let’s Encrypt-Zertifikate haben eine Gültigkeit von 90 Tagen, und es wird dringend empfohlen, die Zertifikate zu erneuern, bevor sie ablaufen. Dank des systemd-Dienstes, der zweimal täglich ausgeführt wird und bald ablaufende Zertifikate automatisch erneuert.

Ich empfehle Ihnen jedoch, den folgenden Befehl auszuführen, um die automatische Erneuerung Ihres Zertifikats zu simulieren.

sudo certbot renew --dry-run

Ausgabe:

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)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Wenn die Ausgabe bestätigt, dass die Verlängerung korrekt funktioniert, erfolgt die automatische Verlängerung wie erwartet.

Schlussfolgerung

Das ist alles. Ich hoffe, Sie haben gelernt, wie Sie das Let’s Encrypt SSL-Zertifikat für Nginx unter Debian 11 installieren. Teilen Sie Ihr Feedback im Kommentarbereich mit.


Debian
  1. So installieren Sie Nginx unter Debian 9

  2. So installieren Sie Let’s Encrypt SSL für NGINX unter Rocky Linux 8

  3. So installieren Sie Drupal 9 mit Nginx und Lets Encrypt SSL unter Debian 10

  4. So installieren Sie Let’s Encrypt SSL auf Ubuntu 18.04 mit Nginx

  5. So installieren Sie Microweber unter Debian 9

So installieren Sie Let’s Encrypt (Certbot) unter CentOS 8

So installieren Sie Nginx mit Let’s Encrypt TLS/SSL unter Debian 11 Bullseye

So installieren Sie Nginx mit Let’s Encrypt TLS/SSL unter Ubuntu 20.04

So installieren Sie Let’s Encrypt SSL mit DirectAdmin

So installieren Sie Nginx mit Let’s Encrypt SSL auf Fedora 35

So installieren Sie Nginx unter Debian 10