For the complete documentation index, see llms.txt. This page is also available as Markdown.

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 80 und Port 443 sind in der Firewall geöffnet

Beispiel:

Port
Zweck

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:

Typ
Name
Ziel

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 80 weiterhin erreichbar bleibt

  • HTTP-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 80 ist geöffnet

  • Domain 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 ServerName korrekt gesetzt?

  • ist ServerAlias für www gesetzt, falls benötigt?

  • zeigt DocumentRoot auf 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 80 erreichbar?

  • 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:

Datei
Bedeutung

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 80 und 443 geöffnet sind

  • ob die Domain bereits auf den Server zeigt

Sicherheit: Sende niemals private Schlüssel, Passwörter oder vollständige Zugangsdaten an den Support.

Zuletzt aktualisiert