Letsencrypt renewal

September 3, 2017 949 views
Let's Encrypt DNS Ubuntu 16.04

I have web app running on a DO Droplet which I secured with Letsencrypt. The cert renewal has been failing it's weekly attempt ever since 8/6. I should've addressed the problem sooner, but the cert has expired. In my le-renew.log I have the following error...

All renewal attempts failed. The following certs could not be renewed:
  /etc/letsencrypt/live/[domain]/fullchain.pem (failure)
IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: [domain]
   Type:   connection
   Detail: DNS problem: SERVFAIL looking up CAA for [domain]

   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.

And when I attempt to manually renew via sudo /usr/bin/letsencrypt renew I get that same error referring to SERVFAIL and the CAA.

After some investigating I've confirmed some things. My domain was registered through Google Domains, pointed to the digitalocean name servers, and I have an A record setup for my droplet. I've read that there are new requirements for issuing SSLs and renewals, specifically a CAA record, and that digitalocean doesn't yet support this? According to this thread.

My question is is there anything I can do resolve this or must I wait until digitalocean supports CAA records? Am I forced to run the site unsecured for now?

4 Answers
mnordhoff September 3, 2017
Accepted Answer

It's hard to tell you anything without more information.

Let's Encrypt does not require that you use CAA, only that your nameservers respond in a valid manner, which is an extremely low bar that most DNS providers meet (at least by now).

https://letsencrypt.org/docs/caa/

What's your domain?

(Domains are public, and all Let's Encrypt certificates are logged publicly.)

Thanks for the response. The domain is www.ssi-extranet.com.

  • The problem is that the zone in the DigitalOcean control panel is called "www.ssi-extranet.com." but it should be called "ssi-extranet.com." (with an A record for "www".)

    It's not really an issue with CAA records per se, it's just that the setup makes all queries for ssi-extranet.com. (except for www.ssi-extranet.com.), including CAA, fail.

    You need to rename or recreate the zone in the control panel. (Don't forget to make sure there's a working "www" A record!)

    Compare (on some Linux box):

    dig ssi-extranet.com
    dig ssi-extranet.com caa
    dig ssi-extranet.com ns
    dig www.ssi-extranet.com
    dig www.ssi-extranet.com caa
    dig www.ssi-extranet.com ns
    

    (With an older version of dig, you would need to do e.g. "dig example.com type257" instead of "dig example.com caa".)

Thanks so much. This led me to the resolution. Simply needed to add that domain and an A record for it, and manually initiate the renewal.

I'm getting an error with sudo letsencrypt renew

Error:
WARNING:letsencrypt.cli:Attempting to renew cert from /etc/letsencrypt/renewal/whatsdarling.anound.com.conf produced an unexpected error: 'server'. Skipping.
All renewal attempts failed. The following certs could not be renewed:
/etc/letsencrypt/live/whatsdarling.anound.com/fullchain.pem (failure)
1 renew failure(s), 0 parse failure(s)

Have another answer? Share your knowledge.