Certbot ist ein beliebtes Tool für die automatische Erstellung und Verwaltung von SSL/TLS-Zertifikaten (z. B. von Let’s Encrypt) auf Linux-Servern. Hier ist eine Schritt-für-Schritt-Anleitung zur Installation:
1. Certbot installieren
2. Zertifikat erstellen
3. Automatische Erneuerung einrichten
4. Firewall anpassen (falls nötig)
5. https://deine-domain.de Zugriff
6. Häufige Fehler bei Certbot unter Linux
1.) Certbot installieren
Die Installation hängt von Ihrer Linux-Distribution ab:
Ubuntu/Debian
sudo apt update sudo apt install certbot python3-certbot-apache # Für Apache # ODER sudo apt install certbot python3-certbot-nginx # Für Nginx
CentOS/RHEL 8+ (mit EPEL-Repository)
sudo dnf install epel-release sudo dnf install certbot python3-certbot-apache # Für Apache # ODER sudo dnf install certbot python3-certbot-nginx # Für Nginx
Fedora
sudo dnf install certbot python3-certbot-apache # Für Apache # ODER sudo dnf install certbot python3-certbot-nginx # Für Nginx
Arch Linux
sudo pacman -S certbot certbot-apache # Für Apache # ODER sudo pacman -S certbot certbot-nginx # Für Nginx
2.) Zertifikat erstellen
Automatische Konfiguration (Apache/Nginx)
sudo certbot --apache # Für Apache # ODER sudo certbot --nginx # Für NginxFolgen Sie den Anweisungen, um Ihre Domain auszuwählen und HTTPS einzurichten.
Manuelle Erstellung (ohne Webserver-Plugin)
sudo certbot certonly --standalone -d deine-domain.de -d www.deine-domain.de(Dabei ersetzt du `deine-domain.de` mit deiner tatsächlichen Domain.)
3.) Automatische Erneuerung einrichten
Certbot erneuert Zertifikate automatisch, aber du kannst die Erneuerung manuell testen:
sudo certbot renew --dry-runFalls alles funktioniert, wird Certbot automatisch abgelaufende Zertifikate erneuern.
4.) Firewall anpassen (falls nötig)
Stelle sicher, dass HTTPS (Port 443) erlaubt ist:
sudo ufw allow 443/tcp # Falls UFW aktiv ist
5.) https://deine-domain.de Zugriff
Deine Website sollte jetzt über `https://deine-domain.de` erreichbar sein. Certbot kümmert sich automatisch um die Erneuerung der Zertifikate.
6.) Häufige Fehler bei Certbot unter Linux
Bei der Verwendung von Certbot können verschiedene Fehler auftreten. Hier sind die häufigsten Probleme und ihre Lösungen:
1. Fehler: `Could not bind to port 80/443`
Problem:
Certbot benötigt Port 80 (HTTP) oder 443 (HTTPS), aber ein anderer Dienst (z. B. Apache, Nginx) blockiert den Port.
Lösung:
- Stoppe den Webserver vorübergehend:
sudo systemctl stop apache2 # Apache # ODER sudo systemctl stop nginx # Nginx
- Führe Certbot im Standalone-Modus aus:
sudo certbot certonly --standalone -d deine-domain.de
- Starte den Webserver danach wieder:
sudo systemctl start apache2 # Apache # ODER sudo systemctl start nginx # Nginx
2. Fehler: `DNS problem: NXDOMAIN looking up A for deine-domain.de`
Problem:
Die Domain ist nicht korrekt auf die Server-IP verweisend oder die DNS-Einträge sind noch nicht propagiert.
Lösung:
- Überprüfe die DNS-Einträge mit:
dig deine-domain.de
- Stelle sicher, dass ein A-Record auf deine Server-IP zeigt.
- Warte ggf. auf die DNS-Propagierung (kann einige Stunden dauern).
3. Fehler: `Too many requests` (Rate Limit)
Problem:
Let’s Encrypt hat ein Rate-Limit (z. B. 5 Zertifikate pro Woche pro Domain).
Lösung:
- Warte 1 Woche oder verwende ein Test-Zertifikat mit:
sudo certbot --test-cert -d deine-domain.de
- Nutze das `--dry-run`-Flag für Tests:
sudo certbot renew --dry-run
4. Fehler: `Failed to connect to host for DVSNI challenge`
Problem:
Certbot kann die HTTP-Challenge nicht abschließen, weil die Domain nicht öffentlich erreichbar ist (z. B. wegen Firewall, NAT oder falscher Konfiguration).
Lösung:
- Überprüfe, ob die Domain von außen erreichbar ist:
curl -I http://deine-domain.de
- Öffne Port 80 in der Firewall:
sudo ufw allow 80/tcp # UFW # ODER sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # iptables
5. Fehler: `The requested nginx plugin does not appear to be installed`
Problem:
Das Nginx/Apache-Plugin für Certbot ist nicht installiert.
Lösung:
- Installiere das fehlende Plugin:
sudo apt install python3-certbot-nginx # Ubuntu/Debian # ODER sudo dnf install python3-certbot-nginx # CentOS/RHEL/Fedora
6. Fehler: `Permission denied` bei `/etc/letsencrypt/`
Problem:
Certbot hat keine Schreibrechte im Let’s Encrypt-Verzeichnis.
Lösung:
- Setze korrekte Berechtigungen:
sudo chown -R root:root /etc/letsencrypt/ sudo chmod -R 0755 /etc/letsencrypt/
7. Fehler: `Certbot is already running`
Problem:
Ein anderer Certbot-Prozess läuft bereits.
Lösung:
- Beende alle Certbot-Prozesse:
sudo pkill -f certbot
- Warte einige Sekunden und versuche es erneut.
8. Fehler: `Zertifikat wird nicht automatisch erneuert`
Problem:
Der Cron-Job oder Systemd-Timer für die Erneuerung fehlt oder funktioniert nicht.
Lösung:
- Erneuere manuell:
sudo certbot renew
- Überprüfe den Timer:
sudo systemctl list-timers | grep certbot
- Aktiviere den Timer (falls deaktiviert):
sudo systemctl enable certbot.timer
Tipp: Logs überprüfen
Certbot-Protokolle finden sich unter:
sudo tail -f /var/log/letsencrypt/letsencrypt.log