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.
- http://itzgeek.net>> https://itzgeek.net
- 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-WebsiteODER
https://Ihre-https-WebsiteSie 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.netLet’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.