HTTPS ist heute Standard - nicht nur für Online-Shops, sondern für jede Website. Mit Let's Encrypt erhalten Sie kostenlose SSL-Zertifikate, die von allen Browsern akzeptiert werden. In dieser Anleitung zeigen wir die Einrichtung mit Certbot.

Was ist Let's Encrypt?

Let's Encrypt ist eine gemeinnützige Zertifizierungsstelle, die kostenlose SSL/TLS-Zertifikate ausstellt. Die Zertifikate sind 90 Tage gültig und können automatisch verlängert werden.

Voraussetzungen

  • Ein Server mit Root-Zugang
  • Eine Domain, die auf Ihren Server zeigt (A-Record)
  • Apache oder Nginx als Webserver
  • Port 80 und 443 müssen erreichbar sein

Certbot installieren

Ubuntu/Debian

apt update
apt install certbot

Für Apache zusätzlich:

apt install python3-certbot-apache

Für Nginx zusätzlich:

apt install python3-certbot-nginx

SSL-Zertifikat für Apache

Der einfachste Weg - Certbot konfiguriert Apache automatisch:

certbot --apache -d example.com -d www.example.com

Certbot fragt nach: 1. E-Mail-Adresse (für Ablauf-Warnungen) 2. Zustimmung zu den Nutzungsbedingungen 3. Ob HTTP automatisch auf HTTPS umgeleitet werden soll (empfohlen: Ja)

Nach Abschluss ist Ihre Website unter HTTPS erreichbar.

SSL-Zertifikat für Nginx

Ähnlich einfach für Nginx:

certbot --nginx -d example.com -d www.example.com

Certbot erkennt Ihre Nginx-Konfiguration und fügt die SSL-Einstellungen automatisch hinzu.

Manuelle Einrichtung (Webroot)

Falls die automatische Konfiguration nicht funktioniert:

certbot certonly --webroot -w /var/www/html -d example.com -d www.example.com

Die Zertifikate werden gespeichert unter:

  • /etc/letsencrypt/live/example.com/fullchain.pem (Zertifikat)
  • /etc/letsencrypt/live/example.com/privkey.pem (Private Key)

Diese müssen Sie dann manuell in Ihre Webserver-Konfiguration einbinden.

Automatische Verlängerung

Certbot richtet automatisch einen Cronjob oder Systemd-Timer ein. Prüfen Sie mit:

systemctl status certbot.timer

Oder testen Sie die Verlängerung manuell:

certbot renew --dry-run

Wildcard-Zertifikate

Für alle Subdomains (*.example.com) benötigen Sie DNS-Validation:

certbot certonly --manual --preferred-challenges dns -d "*.example.com" -d example.com

Certbot zeigt Ihnen einen TXT-Record an, den Sie bei Ihrem DNS-Provider eintragen müssen.

Zertifikat-Status prüfen

Alle installierten Zertifikate anzeigen:

certbot certificates

Häufige Probleme

"Challenge failed"

  • Domain zeigt nicht auf den Server (DNS prüfen)
  • Port 80 ist blockiert (Firewall prüfen)
  • Webserver läuft nicht

"Too many requests"

Let's Encrypt hat Rate-Limits. Bei zu vielen Versuchen müssen Sie warten. Tipp: Nutzen Sie --staging zum Testen.

Zertifikat läuft ab

Der automatische Renewal funktioniert nicht? Prüfen Sie:

certbot renew --dry-run

Empfohlene SSL-Konfiguration

Nach der Zertifikats-Installation empfehlen wir zusätzliche Sicherheitsheader. Für Nginx:

ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
add_header Strict-Transport-Security "max-age=31536000" always;

Fazit

Mit Let's Encrypt und Certbot ist die SSL-Einrichtung in wenigen Minuten erledigt. Es gibt keinen Grund mehr, Websites ohne HTTPS zu betreiben. Die automatische Verlängerung sorgt dafür, dass Sie sich nach der Einrichtung nicht mehr darum kümmern müssen.