Certbot und Let’s Encrypt installieren
Let’s Encrypt stellt kostenlose SSL-Zertifikate bereit. Mit Certbot kannst du diese Zertifikate auf deinem KVM-Server automatisch anfordern, einrichten und verlängern.
Ein SSL-Zertifikat wird benötigt, damit deine Webseite über HTTPS erreichbar ist. HTTPS verschlüsselt die Verbindung zwischen dem Besucher und deiner Webseite.
Voraussetzungen
Bevor du Certbot installierst, sollten folgende Punkte erledigt sein:
dein KVM-Server ist erreichbar
du hast Root- oder sudo-Zugriff
eine Domain zeigt auf die IP-Adresse deines Servers
ein Webserver wie Nginx oder Apache ist installiert
Port
80und Port443sind in der Firewall geöffnet
Beispiel:
80
HTTP, wird für die Prüfung durch Let’s Encrypt benötigt
443
HTTPS, wird für die verschlüsselte Webseite benötigt
Wichtig: Let’s Encrypt kann ein Zertifikat nur ausstellen, wenn die Domain korrekt auf deinen Server zeigt und von außen erreichbar ist.
Domain prüfen
Bevor du ein Zertifikat anforderst, prüfe, ob deine Domain auf deinen Server zeigt.
Wenn deine Server-IP zum Beispiel 123.123.123.123 ist, sollte deine Domain per A-Record auf diese IP-Adresse zeigen.
Beispiel:
A
@
123.123.123.123
A
www
123.123.123.123
Wenn du IPv6 verwendest, kann zusätzlich ein AAAA-Record gesetzt werden.
DNS-Änderungen sind nicht immer sofort aktiv. Es kann einige Minuten bis mehrere Stunden dauern, bis die Änderung überall übernommen wurde.
Webserver prüfen
Certbot arbeitet meistens mit einem vorhandenen Webserver zusammen.
Häufig verwendet werden:
Nginx
Apache
Prüfe zuerst, welchen Webserver du verwendest.
Nginx prüfen:
systemctl status nginx
Apache prüfen:
systemctl status apache2
Wenn der Dienst läuft, sollte der Status als aktiv angezeigt werden.
Firewall prüfen
Damit Let’s Encrypt deine Domain prüfen kann, muss Port 80 erreichbar sein.
Für die spätere HTTPS-Verbindung muss Port 443 erreichbar sein.
Wenn du UFW nutzt, kannst du die Ports so freigeben:
ufw allow 80/tcp
ufw allow 443/tcp
Status prüfen:
ufw status
Certbot unter Debian oder Ubuntu installieren
Aktualisiere zuerst die Paketlisten:
apt update
Installiere danach Certbot.
Grundpaket:
apt install certbot
Je nach Webserver installierst du zusätzlich das passende Plugin.
Für Nginx:
apt install python3-certbot-nginx
Für Apache:
apt install python3-certbot-apache
Zertifikat für Nginx erstellen
Wenn du Nginx verwendest, kannst du Certbot direkt mit dem Nginx-Plugin ausführen.
Befehl:
certbot --nginx
Certbot sucht vorhandene Nginx-Konfigurationen und fragt dich, für welche Domain ein Zertifikat erstellt werden soll.
Wenn du eine bestimmte Domain angeben möchtest:
certbot --nginx -d deinedomain.de -d www.deinedomain.de
Danach fragt Certbot normalerweise nach:
E-Mail-Adresse
Zustimmung zu den Nutzungsbedingungen
optionaler Weiterleitung von HTTP auf HTTPS
Wähle die HTTPS-Weiterleitung, wenn deine Webseite dauerhaft verschlüsselt erreichbar sein soll.
Zertifikat für Apache erstellen
Wenn du Apache verwendest, nutzt du das Apache-Plugin.
Befehl:
certbot --apache
Für eine bestimmte Domain:
certbot --apache -d deinedomain.de -d www.deinedomain.de
Certbot passt die Apache-Konfiguration automatisch an, wenn eine passende VirtualHost-Konfiguration gefunden wird.
Nur Zertifikat erstellen ohne automatische Webserver-Anpassung
Wenn Certbot deinen Webserver nicht automatisch ändern soll, kannst du nur ein Zertifikat erstellen.
Dafür wird häufig der Webroot-Modus verwendet.
Beispiel:
certbot certonly --webroot -w /var/www/html -d deinedomain.de -d www.deinedomain.de
Dabei ist /var/www/html das Webverzeichnis deiner Webseite.
Diese Variante ist sinnvoll, wenn du deine Webserver-Konfiguration selbst verwalten möchtest.
Zertifikat testen
Nach erfolgreicher Einrichtung sollte deine Webseite über HTTPS erreichbar sein.
Öffne im Browser:
https://deinedomain.de
Prüfe außerdem:
wird ein Schloss-Symbol angezeigt?
wird die richtige Domain angezeigt?
wird keine Zertifikatswarnung angezeigt?
funktioniert auch
https://www.deinedomain.de, falls eingerichtet?
Automatische Verlängerung
Let’s Encrypt Zertifikate sind zeitlich begrenzt und müssen regelmäßig verlängert werden.
Certbot richtet auf modernen Systemen meistens automatisch eine Verlängerung per Timer oder Cronjob ein.
Du kannst die automatische Verlängerung testen:
certbot renew --dry-run
Wenn dieser Test erfolgreich ist, sollte die automatische Verlängerung funktionieren.
Zertifikate anzeigen
Alle von Certbot verwalteten Zertifikate kannst du so anzeigen:
certbot certificates
Dort siehst du unter anderem:
Domainnamen
Ablaufdatum
Speicherort des Zertifikats
verwendete Zertifikatsdateien
Zertifikat manuell verlängern
Normalerweise ist keine manuelle Verlängerung nötig.
Falls du sie trotzdem ausführen möchtest:
certbot renew
Wenn ein Zertifikat noch nicht erneuert werden muss, überspringt Certbot es automatisch.
HTTPS erzwingen
Wenn deine Webseite immer über HTTPS erreichbar sein soll, solltest du HTTP auf HTTPS weiterleiten.
Bei Certbot mit Nginx oder Apache kannst du diese Weiterleitung oft direkt während der Einrichtung auswählen.
Wenn du sie manuell einrichtest, achte darauf, dass:
Port
80weiterhin erreichbar bleibtHTTP-Anfragen korrekt auf HTTPS weiterleiten
keine Weiterleitungsschleife entsteht
alle Domains im Zertifikat enthalten sind
Häufige Probleme
Domain zeigt nicht auf den Server
Wenn die Domain nicht auf die richtige IP-Adresse zeigt, kann Let’s Encrypt kein Zertifikat ausstellen.
Prüfe:
A-Record für IPv4
AAAA-Record für IPv6, falls genutzt
richtige IP-Adresse
DNS-Änderung bereits aktiv
Domain ohne Tippfehler
Port 80 ist blockiert
Let’s Encrypt muss deine Domain über HTTP prüfen können.
Wenn Port 80 blockiert ist, schlägt die Prüfung fehl.
Prüfe:
Firewall auf dem Server
Firewall-Regeln im Betriebssystem
Webserver läuft
Port
80ist geöffnetDomain zeigt auf den richtigen Server
Webserver läuft nicht
Wenn Nginx oder Apache nicht gestartet ist, kann Certbot die Prüfung nicht abschließen.
Nginx starten:
systemctl start nginx
Apache starten:
systemctl start apache2
Status prüfen:
systemctl status nginx
oder:
systemctl status apache2
Falsche Webserver-Konfiguration
Wenn Certbot keine passende Domain in deiner Webserver-Konfiguration findet, kann die automatische Einrichtung fehlschlagen.
Prüfe bei Nginx:
existiert ein Serverblock für die Domain?
steht die Domain bei
server_name?zeigt der Serverblock auf das richtige Webverzeichnis?
Prüfe bei Apache:
existiert ein VirtualHost für die Domain?
ist
ServerNamekorrekt gesetzt?ist
ServerAliasfürwwwgesetzt, falls benötigt?zeigt
DocumentRootauf das richtige Verzeichnis?
Too many certificates
Let’s Encrypt hat Limits für Zertifikatsausstellungen.
Wenn du sehr oft Zertifikate für dieselbe Domain anforderst, kann ein Rate Limit erreicht werden.
Vermeide deshalb unnötige Wiederholungen.
Teste Änderungen zuerst mit:
certbot renew --dry-run
Zertifikat ist abgelaufen
Wenn ein Zertifikat abgelaufen ist, hat die automatische Verlängerung möglicherweise nicht funktioniert.
Prüfe:
certbot certificates
Teste die Verlängerung:
certbot renew --dry-run
Prüfe außerdem:
läuft der Webserver?
ist Port
80erreichbar?wurde die Domain geändert?
wurde die Webserver-Konfiguration verändert?
blockiert eine Firewall die Prüfung?
HTTPS funktioniert, aber Webseite lädt falsch
Wenn deine Webseite über HTTPS erreichbar ist, aber Inhalte fehlen oder Warnungen erscheinen, kann Mixed Content die Ursache sein.
Mixed Content bedeutet, dass deine HTTPS-Webseite noch Inhalte über HTTP lädt.
Beispiele:
Bilder über
http://CSS-Dateien über
http://JavaScript-Dateien über
http://
Passe diese URLs in deiner Anwendung oder deinem CMS auf HTTPS an.
Speicherorte der Zertifikate
Certbot speichert Zertifikate normalerweise unter:
/etc/letsencrypt/live/deinedomain.de/
Dort findest du unter anderem:
cert.pem
Zertifikat
chain.pem
Zertifikatskette
fullchain.pem
Zertifikat inklusive Kette
privkey.pem
privater Schlüssel
Wichtig: Gib privkey.pem niemals weiter. Diese Datei ist der private Schlüssel deines Zertifikats.
Zertifikat löschen
Wenn du ein Zertifikat nicht mehr benötigst, kannst du es löschen.
Zuerst Zertifikate anzeigen:
certbot certificates
Dann Zertifikat löschen:
certbot delete --cert-name deinedomain.de
Lösche ein Zertifikat nur, wenn du sicher bist, dass es nicht mehr verwendet wird.
Support kontaktieren
Wenn die Einrichtung nicht funktioniert, kontaktiere den Support.
Gib dabei bitte folgende Informationen an:
Domain
Server-IP
Betriebssystem
verwendeter Webserver: Nginx oder Apache
verwendeter Certbot-Befehl
genaue Fehlermeldung
ob Port
80und443geöffnet sindob die Domain bereits auf den Server zeigt
Sicherheit: Sende niemals private Schlüssel, Passwörter oder vollständige Zugangsdaten an den Support.
Zuletzt aktualisiert