Let’s Encrypt bietet kostenlose TLS-Zertifikate mit automatischer Erneuerung, und es gibt keinen Grund, kein HTTPS zu haben. Zertifikate sind 90 Tage gueltig, was zur Automatisierung der Erneuerung motiviert und die Auswirkungen einer moeglichen Schluesselkompromittierung reduziert. Let’s Encrypt stellt ueber 400 Millionen Zertifikate aus und wird von allen modernen Browsern und Betriebssystemen als vertrauenswuerdig eingestuft.
Installation und Verwendung¶
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
Certbot aendert automatisch die Nginx-Konfiguration — fuegt SSL-Direktiven, HTTP-zu-HTTPS-Umleitung hinzu und setzt Zertifikatspfade. Fuer Apache gibt es ein aequivalentes Plugin python3-certbot-apache. Certbot unterstuetzt auch den Standalone-Modus ohne Webserver, nuetzlich fuer Server mit nicht standardmaessigen Konfigurationen.
Wildcard-Zertifikat¶
sudo certbot certonly --dns-cloudflare \
--dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini \
-d '*.example.com' -d example.com
Wildcard-Zertifikate decken alle Subdomains mit einem einzigen Zertifikat ab. Sie erfordern eine DNS-01-Challenge — Certbot verifiziert den Domainbesitz durch Erstellung eines TXT-DNS-Eintrags. Fuer Automatisierung wird ein DNS-Plugin benoetigt (Cloudflare, Route53, DigitalOcean und andere). Die DNS-Challenge ist auch die einzige Option fuer Server, die nicht aus dem Internet erreichbar sind.
Automatische Erneuerung¶
sudo certbot renew --dry-run
# Crontab oder systemd-Timer:
# 0 0 1 * * certbot renew --quiet --deploy-hook "systemctl reload nginx"
Certbot richtet automatisch einen systemd-Timer fuer die Erneuerung ein. Der Deploy Hook stellt sicher, dass der Webserver nach der Zertifikatserneuerung neu geladen wird. Ueberpruefen Sie die Funktionalitaet mit --dry-run vor dem Produktionseinsatz. Certbot erneuert Zertifikate 30 Tage vor Ablauf, sodass genuegend Zeit bleibt, eventuelle Probleme zu beheben.
Testen¶
Nach der Bereitstellung ueberpruefen Sie die Konfiguration auf SSL Labs (ssllabs.com/ssltest/) — Ziel ist eine A- oder A+-Bewertung. Pruefen Sie, dass HTTP auf HTTPS umleitet, der HSTS-Header gesetzt ist und das Zertifikat alle erforderlichen Domains abdeckt.
Wichtigste Erkenntnis¶
Let’s Encrypt + Certbot = kostenloses HTTPS in 5 Minuten. Richten Sie automatische Erneuerung und Deploy Hook ein, ueberpruefen Sie auf SSL Labs. Fuer Kubernetes-Umgebungen verwenden Sie cert-manager anstelle von Certbot.