So sieht die Meldung aus
Certbot failed to authenticate some domains (authenticator: nginx).
Domain: example.com
Type: connection
Detail: 203.0.113.10: Fetching http://example.com/.well-known/acme-challenge/hkQ3...: Timeout during connect (likely firewall problem)Häufige Ursachen
- Eine Firewall oder Cloud-Security-Group blockiert eingehenden Port 80.
- Der DNS-Eintrag zeigt auf eine falsche oder alte IP-Adresse.
- Die Domain hat einen AAAA-Eintrag, der Server ist über IPv6 aber nicht erreichbar. Let's Encrypt bevorzugt IPv6.
- Der Server steht hinter NAT und Port 80 ist nicht weitergeleitet.
- Ein CDN oder Proxy davor reicht den Challenge-Pfad nicht durch.
Prüfen
- Welche Adressen hat die Domain?
- Ist Port 80 von außen erreichbar? (von einem anderen Rechner)
curl -I http://example.com/.well-known/acme-challenge/test - Lauscht hier etwas auf Port 80?
ss -ltnp | grep ':80 ' - Was erlaubt die Firewall?
ufw status verbose
Lösung
- Port 80 öffnen, auch in der Security Group des Cloud-Anbieters:
ufw allow 80/tcp. - Den A-Eintrag korrigieren, einen nicht funktionierenden AAAA-Eintrag entfernen oder den Server über IPv6 erreichbar machen.
- Port 80 am Router weiterleiten, wenn der Server hinter NAT steht.
- Lässt sich Port 80 nicht öffnen, stattdessen die DNS-Challenge nutzen:
certbot certonly --manual --preferred-challenges dns -d example.com. - Danach erneuern:
certbot renew --dry-run, um ohne Verbrauch des Limits zu prüfen.
Häufige Fragen
Spielt Port 443 bei diesem Fehler eine Rolle?
Nein. Die HTTP-Challenge nutzt immer Port 80, auch wenn die Seite nur auf 443 läuft. Port 80 offen lassen und auf https umleiten.
Warum scheitert es nur bei einigen Domains?
Oft hat eine davon einen kaputten AAAA-Eintrag. Jede Domain mit dig AAAA prüfen.