Let’s Encrypt ist eine kostenlose, offene Zertifizierungsstelle, die TLS-Zertifikate bereitstellt, um Websites per HTTPS zu sichern. Diese Zertifikate verschlüsseln die Kommunikation zwischen Browser und Webserver und schützen sensible Daten wie Passwörter oder Zahlungsinformationen. Im Gegensatz zu früheren, oft kostspieligen Verfahren können Website-Betreiber mit Certbot in wenigen Minuten ein gültiges Zertifikat ausstellen und automatisch erneuern lassen.
Voraussetzungen
- Root- oder sudo-Zugriff auf den Server
- Eine registrierte Domain, die auf den Server zeigt
- Offener Port 80 (für HTTP-Validierung) und ggf. Port 443 (für HTTPS)
- Installierter Webserver (Apache oder Nginx)
Certbot installieren
Offiziell empfohlene Installation per Snap
Snap liefert aktuelle Versionen direkt vom Certbot-Projekt.
Für Ubuntu/Debian-basierte Systeme:
sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
Alternative: Paketinstallation
Für ältere Systeme ohne Snap:
sudo apt-get update
sudo apt-get install certbot
Hinweis: Prüfen Sie die Version (certbot --version
), da ältere Distributionen veraltete Pakete enthalten können.
Zertifikat anfordern (Webroot-Methode)
Beispiel mit Hauptdomain und www-Alias:
sudo certbot certonly --webroot \
-w /var/www/example \
-d example.com -d www.example.com \
--email admin@example.com \
--agree-tos --no-eff-email
- -w gibt den DocumentRoot an (z. B. aus Ihrer Apache-/Nginx-Konfiguration).
- Port 80 muss erreichbar sein.
- Für mehrere Domains einfach weitere
-d
Parameter angeben.
Zertifikatsdateien
Nach erfolgreicher Ausstellung finden Sie die Daten unter:
/etc/letsencrypt/live/example.com/
├── fullchain.pem # Zertifikat + Zwischenzertifikate
└── privkey.pem # Privater Schlüssel
Konfiguration in Nginx
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
Ändern Sie anschließend die Serverkonfiguration und laden Sie den Webserver neu:
sudo systemctl reload nginx
Automatische Erneuerung einrichten
Let’s Encrypt-Zertifikate sind 90 Tage gültig.
Erneuerung testen:
sudo certbot renew --dry-run
Automatische Erneuerung mit systemd
aktivieren (bei Snap-Installation standardmäßig vorhanden):
sudo systemctl enable --now certbot.timer
Alternativ Cronjob:
0 3 * * * certbot renew --quiet && systemctl reload nginx
Wildcard-Zertifikate (DNS-Challenge)
Für Zertifikate wie *.example.com
ist eine DNS-Validierung nötig:
sudo certbot certonly --manual \
--preferred-challenges=dns \
-d example.com -d '*.example.com'
Fügen Sie den von Certbot angezeigten TXT-Record in Ihre DNS-Zone ein.
Für automatische DNS-Updates können Sie ein Plugin wie certbot-dns-cloudflare
nutzen.
Häufige Fehler und Lösungen
- Challenge fehlgeschlagen
- Prüfen, ob Port 80 erreichbar und nicht auf HTTPS umgeleitet ist.
- Webroot-Verzeichnis muss für den Webserver-Benutzer (z. B. www-data) beschreibbar sein.
- CDN oder WAF könnte die
.well-known/acme-challenge
-Anfrage blockieren.
- Rate Limits erreicht
- Let’s Encrypt erlaubt pro Woche nur eine bestimmte Anzahl Zertifikatsausstellungen. Siehe Rate Limits-Dokumentation.
- Falscher Webroot
- Der in
-w
angegebene Pfad muss exakt dem DocumentRoot Ihrer VirtualHost-/Server-Block-Konfiguration entsprechen.
- Der in
Checkliste vor Go-Live
- Test der Zertifikatsausstellung (
--dry-run
) erfolgreich - Ports 80/443 offen und erreichbar
- Zertifikatsdateien korrekt in Webserver eingebunden
- Automatische Erneuerung eingerichtet und getestet
- HTTPS-Erzwingung in Serverkonfiguration aktiviert
- Optional: HSTS-Header setzen, Cipher-Suite prüfen
Weiterführende Links
- Offizielle Certbot-Dokumentation
- Let’s Encrypt: Rate Limits
- Apache SSL-Konfigurationsbeispiele
- Nginx SSL-Modul
Wenn Sie Hilfe bei der Einrichtung oder Optimierung Ihrer TLS-Konfiguration wünschen, inklusive HSTS, Cipher-Hardening und OCSP-Stapling, kontaktieren Sie uns über unser Kontaktformular mit Ihrer Domain. Wir erstellen Ihnen gerne einen kurzen Audit-Plan.
Weitere interessante Artikel finden Sie in unserem Blog.
- Nextcloud Contact App - 20. Januar 2023
- Let’s Encrypt-Zertifikate mit Certbot einrichten und automatisieren - 17. Januar 2023
- Nextcloud Impersonate App - 9. Januar 2023