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 certbotFür Apache zusätzlich:
apt install python3-certbot-apacheFür Nginx zusätzlich:
apt install python3-certbot-nginxSSL-Zertifikat für Apache
Der einfachste Weg - Certbot konfiguriert Apache automatisch:
certbot --apache -d example.com -d www.example.comCertbot 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.comCertbot 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.comDie 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.timerOder testen Sie die Verlängerung manuell:
certbot renew --dry-runWildcard-Zertifikate
Für alle Subdomains (*.example.com) benötigen Sie DNS-Validation:
certbot certonly --manual --preferred-challenges dns -d "*.example.com" -d example.comCertbot zeigt Ihnen einen TXT-Record an, den Sie bei Ihrem DNS-Provider eintragen müssen.
Zertifikat-Status prüfen
Alle installierten Zertifikate anzeigen:
certbot certificatesHä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-runEmpfohlene 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.