Hello everyone,

I’ve been trying to set up a Mumble voice chat server on my home network using a Debian server. As part of the setup process, I need to obtain an SSL certificate from Let’s Encrypt for secure HTTPS access to the server. However, I’m encountering an error when running the Certbot client to request the certificate.

Here’s the command I’m running:

sudo certbot certonly -d mydomain.com

But I get the following error message:

Timeout during connect (likely firewall problem)

I’ve checked my firewall rules and confirmed that I’ve opened port 80 as required for the Let’s Encrypt verification process. Here’s the relevant rule in my ufw configuration:

80/tcp ALLOW Anywhere

Despite this, I’m still getting the timeout error. Has anyone else encountered this issue before? What steps should I take to troubleshoot further?

Thanks in advance for any advice!

  • qprimed
    link
    fedilink
    English
    910 months ago

    are you actually running a web server on that host? iirc, certbot will place a temporary token to be served by your web server (Apache, etc.) to show that you actually control the domain you are requesting a cert for.

    I switched to DNS based retrieval as soon as let’s encrypt offered it, so its been years since I retrieved certs via http.

      • qprimed
        link
        fedilink
        English
        310 months ago

        if you are using http cert retrieval, certbot needs a place put the temp. token to authenticate your contrrol of the domain your are creating a certificate for. usually that will be the same webserver you want to serve the certificate from.

        if you are not running an actual weberver on port 80 that certbot can insert a token for, certbot cannot complete.

        this is, of course, in addition to other possible issues such as ISP port blocking - but without a web server listening on TCP/80, you will have to use other authorization methods (like DNS) to generate a cert.

          • @[email protected]
            link
            fedilink
            English
            5
            edit-2
            10 months ago

            Easiest is probably “certbot --standalone” which lets certbot use its embedded webserver.

            Otherwise nginx and apache httpd are common and reasonable options.

            • qprimed
              link
              fedilink
              English
              210 months ago

              heh, forgot about the standalone web server in certbot. thats a good ephemeral option.

          • qprimed
            link
            fedilink
            English
            310 months ago

            if you are able to run a public web server, then certificate issuance via certbot http challenge works pretty well. the web server can serve a really simple static page with little to nothing on it - but of course its another potential vector into your network.

            if your public domain DNS makes use of a supported dns provider or you run your own publically accessible dns server, then dns certbot challenges are great and more flexible than http.

            others may suggest neat work arounds for the http challenge issue, but if you have access to a supported dns service I would look at that option. certbot has helpers for quite a few public services as well as support for self hosted dns servers. I run my own public dns servers, so thats the option I chose and use certbot hooks, cron and bash scripts to rsync the updated carts to the propr hosts for the various services I run privately and publicly.

          • @[email protected]
            link
            fedilink
            English
            310 months ago

            I use letsencrypt a lot, if firewalls are an issue I’ll use dns authentication.

            If you are struggling and need a quick fix, the free tier of zero ssl will do a similar thing

            https://zerossl.com/

            I used it to get a cert for my printer