Timeout during connect (likely firewall problem)

Please fill out the fields below so we can help you better. Note: you must provide your domain name to get help. Domain names for issued certificates are all made public in Certificate Transparency logs (e.g. https://crt.sh/?q=example.com), so withholding your domain name here does not increase secrecy, but only makes it harder for us to provide help.

My domain is:
systems.social

I ran this command (I tried both):
sudo certbot renew
sudo certbot --nginx -d systems.social

It produced this output:
aving debug log to /var/log/letsencrypt/letsencrypt.log


An RSA certificate named systems.social already exists. Do you want to update
its key type to ECDSA?


(U)pdate key type/(K)eep existing key type: U
Renewing an existing certificate for systems.social

Certbot failed to authenticate some domains (authenticator: nginx). The Certificate Authority reported these problems:
Domain: systems.social
Type: connection
Detail: 178.21.117.252: Fetching http://systems.social/.well-known/acme-challenge/jXthMPUSgWQhpspLs51Gs8oMOrF4a7XEYZBL6w9HiG0: Timeout during connect (likely firewall problem)

Hint: The Certificate Authority failed to verify the temporary nginx configuration changes made by Certbot. Ensure the listed domains point to this nginx server and that it is accessible from the internet.

Some challenges have failed.

My web server is (include version):
nginx/1.18.0

The operating system my web server runs on is (include version):
Debian GNU/Linux 11

My hosting provider, if applicable, is:

I can login to a root shell on my machine (yes or no, or I don't know):
Yes

I'm using a control panel to manage my site (no, or provide the name and version of the control panel):
No

The version of my client is (e.g. output of certbot --version or certbot-auto --version if you're using Certbot):
Certbot 2.1.0.dev0

I am not able to renew my certificate for my self hosted mastodon instance. I host mastodon in a seperate docker container and use nginx to forward port 443 to the docker container.

I also host other containers on the same VPS behind nginx as a proxy. I do not use ipv6 and have one ip address.

I have tried removing certbot and the nginx validation, and tried reinstallation.

This is the port 80 section in my nginx configuration:

server {
listen 80;
listen [::]:80 ipv6only=on;
server_name systems.social;
root /var/www/html;

location ~ ^/.well-known/acme-challenge/*{
root /var/www/cert-validation/;
}
#location /.well-known/acme-challenge/ { allow all; }
location / { return 301 https://$host$request_uri; }
}

What could be my next step?

Port 80 needs to be reachable from the internet for the http-01 challenge, not just port 443.

4 Likes

I think it is?

telnet systems.social 80

Trying 178.21.117.252...

Connected to systems.social.

Escape character is '^]'.

Is that from your local network? Because from the public internet it looks like:

nmap -p80,443 systems.social
Nmap scan report for systems.social (178.21.117.252)
PORT    STATE    SERVICE
80/tcp  filtered http
443/tcp open     https

Or, do you have aggressive firewall settings for port 80 that are different than 443?

4 Likes

Thanks for putting me on the right track! I have a firewall that blocks traffic to port 80 for anyone except from my home IP address.

Thanks for your help!

3 Likes

In hind sight the 'likely a firewall problem' was a bit of a give away... :smiling_face:

4 Likes