Renew error - "Could not connect"

Hi everyone,

I’m unable to renew my certificates, and I only have a week to sort this out before expiry! I have three domains, darksteve.tk, cloud.darksteve.tk, and mail.darksteve.tk. I think I’m only having issues with the first (darksteve.tk) domain.

When I run (as root) the command:
certbot renew

I get the following error:
2016-08-06 14:34:28,120:WARNING:certbot.renewal:Attempting to renew cert from /usr/local/etc/letsencrypt/renewal/darksteve.tk.conf produced an unexpected error: Failed authorization procedure. darksteve.tk (http-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: Could not connect to http://darksteve.tk/.well-known/acme-challenge/puoZnE0oeCx6bYqfOLqzH00s7yXgtfwJ2L5pfsvs2Zs. Skipping.

All renewal attempts failed. The following certs could not be renewed:
  /usr/local/etc/letsencrypt/live/darksteve.tk/fullchain.pem (failure)
1 renew failure(s), 0 parse failure(s)

IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: darksteve.tk
   Type:   connection
   Detail: Could not connect to
   http://darksteve.tk/.well-known/acme-challenge/puoZnE0oeCx6bYqfOLqzH00s7yXgtfwJ2L5pfsvs2Zs

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A record(s) for that domain
   contain(s) the right IP address. Additionally, please check that
   your computer has a publicly routable IP address and that no
   firewalls are preventing the server from communicating with the
   client. If you're using the webroot plugin, you should also verify
   that you are serving files from the webroot path you provided.

I’m running py27-certbot-0.8.1,1 on FreeBSD 10.3, with Apache 2.4.23. I’m running this out of my home, I’m not using a hosting provider. (My ISP is gracious enough to allow non-commercial home servers.) Naturally I have ssh access and I’m the admin so I have root access as well.

This has previously worked flawlessly, but I’ve recently had a 'net outage that lasted two weeks. This resulted in my domains being lost, though I was able to re-set them up again once I was back online. I think I’ve set things up properly again, but I’m concerned I’ve made a DNS error, even though I can remotely connect to all three domains.

My renew config contains the following:

# Options and defaults used in the renewal process
[renewalparams]
installer = None
authenticator = webroot
rsa_key_size = 4096
account = [redacted]
[[webroot_map]]
mail.darksteve.tk = /usr/local/www/roundcube/
darksteve.tk = /usr/local/www/DarkSteve.tk/
cloud.darksteve.tk = /usr/local/www/owncloud/

(I removed my account, just in case.) I didn’t realise that I’d lost my domains the first time I tried renewing, and I got the same error as above except it listed all three domains. Once I set DNS up again, I now only get the darksteve.tk error.

I’ve been using webroot since the beginning, and I’m currently able to remotely access text files I put in .well-known.

I’ve tried everything I can think of, but I’m now all out of ideas! Since the last time I’ve renewed, the client has updated, though nobody else seems to be having the same problem.

Does anybody have any suggestions? I’d appreciate any ideas :slight_smile:

The error suggests it’s a port 80 issue (though I’m not sure why).

Is it possible to get webroot to try to authenticate via port 443? The command for standalone doesn’t work for webroot.

Is there really nobody able to suggest anything? Really?

When using telnet to retrieve your test file, I’m getting a wrong redirect:

Trying 110.175.224.69...
Connected to darksteve.tk.
Escape character is '^]'.
GET /.well-known/boobs.txt HTTP/1.1
Host: darksteve.tk

HTTP/1.1 301 Moved Permanently
Date: Tue, 09 Aug 2016 04:50:30 GMT
Server: Apache/2.4.23 (FreeBSD) PHP/5.6.24 OpenSSL/1.0.2h
Location: https://darksteve.tk.well-known/boobs.txt
Content-Length: 249
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="https://darksteve.tk.well-known/boobs.txt">here</a>.</p>
</body></html>
Connection closed by foreign host.

There’s a forward slash missing.

Perhaps Boulder tries to connect to darksteve.tk.well-known, but isn’t clear about that in the error message?

Debugging your problem for people on this forum is difficult, because: a) the protocol you’re presenting your test file with is HTTPS and b) you’ve got HSTS on, so once people have surfed to your site with HTTPS, browsers won’t try HTTP any longer (which is what Boulder uses to verify with the webroot plugin) and can’t discover the mis-configured redirect.

1 Like

Thankyou! Perfect, that fixed it. I added a forward slash to the end of the redirect and it worked.

I hadn't changed anything in my Apache config since the last renew (which worked), so I guess something either changed in the client or the server.

Thanks for your help :slight_smile:

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.