Come appare il messaggio
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)Cause frequenti
- Un firewall o un security group del cloud blocca la porta 80 in ingresso.
- Il record DNS punta a un indirizzo IP errato o vecchio.
- Il dominio ha un record AAAA ma il server non è raggiungibile via IPv6. Let's Encrypt preferisce IPv6.
- Il server sta dietro NAT e la porta 80 non è inoltrata.
- Una CDN o un proxy davanti non lascia passare il percorso della challenge.
Verifica
- Quali indirizzi ha il dominio?
- La porta 80 è raggiungibile da fuori? (da un'altra macchina)
curl -I http://example.com/.well-known/acme-challenge/test - Qualcosa ascolta sulla porta 80 qui?
ss -ltnp | grep ':80 ' - Cosa consente il firewall?
ufw status verbose
Soluzione
- Apri la porta 80, anche nel security group del provider cloud:
ufw allow 80/tcp. - Correggi il record A, oppure rimuovi un record AAAA che non funziona, o rendi il server raggiungibile via IPv6.
- Inoltra la porta 80 sul router se il server è dietro NAT.
- Se non puoi aprire la porta 80, usa invece la challenge DNS:
certbot certonly --manual --preferred-challenges dns -d example.com. - Poi rinnova:
certbot renew --dry-runper provare senza consumare il limite.
Domande frequenti
La porta 443 c'entra con questo errore?
No. La challenge HTTP usa sempre la porta 80, anche se il sito gira solo su 443. Tieni aperta la 80 e reindirizza a https.
Perché fallisce solo per alcuni domini?
Spesso uno di loro ha un record AAAA rotto. Controlla ogni dominio con dig AAAA.