Let's Encrypt mit Nginx

Diese Anleitung erklärt, wie Sie mit Certbot ein kostenloses Let's Encrypt SSL-Zertifikat auf einem Linux-Server mit Nginx installieren — inklusive automatischer Erneuerung.

Voraussetzungen: Nginx muss installiert und aktiv sein. Der A-Record Ihrer Domain muss auf die IP Ihres Servers zeigen. Port 80 und 443 müssen in der Firewall geöffnet sein.

Schritt 1: Certbot installieren

Certbot und das Nginx-Plugin über den Paketmanager installieren.

Debian / Ubuntu

Terminal
apt update apt install certbot python3-certbot-nginx

CentOS / AlmaLinux / Rocky Linux

Terminal
dnf install epel-release dnf install certbot python3-certbot-nginx

Schritt 2: Zertifikat ausstellen

Certbot stellt das Zertifikat aus und konfiguriert Nginx automatisch.

Ersetzen Sie ihre-domain.de durch Ihren tatsächlichen Domainnamen. Für mehrere Domains fügen Sie weitere -d Parameter an:

Terminal
certbot --nginx -d ihre-domain.de -d www.ihre-domain.de

Certbot fragt nach einer E-Mail-Adresse für Ablaufbenachrichtigungen und ob HTTP automatisch auf HTTPS umgeleitet werden soll. Wählen Sie 2 für die automatische Weiterleitung — das ist für die meisten Websites die richtige Wahl.

Schritt 3: Installation prüfen

Sicherstellen, dass Nginx mit dem neuen Zertifikat korrekt läuft.
Terminal
nginx -t systemctl reload nginx

Öffnen Sie Ihre Domain im Browser — Sie sollten jetzt https:// und das Schloss-Symbol sehen. Für eine detaillierte Prüfung können Sie SSL Labs verwenden.

Schritt 4: Automatische Erneuerung prüfen

Let's Encrypt-Zertifikate sind 90 Tage gültig — Certbot erneuert sie automatisch.

Certbot richtet bei der Installation automatisch einen Systemd-Timer oder Cronjob ein. Prüfen Sie ob der Timer aktiv ist:

Terminal
systemctl status certbot.timer

Testen Sie den Erneuerungsprozess mit einem Probelauf — dabei wird kein echtes Zertifikat ausgestellt:

Terminal
certbot renew --dry-run

Wenn --dry-run erfolgreich ist, funktioniert die automatische Erneuerung korrekt. Keine weiteren Schritte notwendig.

Zertifikat manuell erneuern

Falls eine manuelle Erneuerung notwendig ist.
Terminal
certbot renew systemctl reload nginx

Häufige Fehlermeldungen

FehlerUrsache & Lösung
Connection refused on port 80Port 80 ist in der Firewall gesperrt. In iptables oder nftables öffnen.
DNS problem: NXDOMAINDer A-Record der Domain zeigt nicht auf diesen Server. DNS prüfen und ggf. warten bis die Änderung propagiert ist.
too many certificates already issuedLet's Encrypt erlaubt 5 Zertifikate pro Domain pro Woche. Warten oder ein Staging-Zertifikat zum Testen verwenden.
nginx: configuration file test failedCertbot hat die Nginx-Konfiguration fehlerhaft modifiziert. Mit nginx -t prüfen und ggf. manuell korrigieren.

Weiterführende Dokumentation

Die vollständige Certbot-Dokumentation finden Sie auf der offiziellen Website.