1 (edited by Runberg 2019-04-03 16:22:20)

Topic: Letsencrypt renew failure

==== REQUIRED BASIC INFO OF YOUR IREDMAIL SERVER ====
- iRedMail version (check /etc/iredmail-release): 0.9.8
- Linux/BSD distribution name and version: Ubuntu 18.04
- Store mail accounts in which backend (LDAP/MySQL/PGSQL): MySQL
- Web server (Apache or Nginx): NginX
- Manage mail accounts with iRedAdmin-Pro? No
- [IMPORTANT] Related original log or error message is required if you're experiencing an issue.
====

Hi

The renewal of letsencrypt certificates doesn't work any longer. Im getting an error. Anyone with good ideas to what might have changed? - I'm pretty sure it has worked before.

root@mail:/var/www/html# letsencrypt renew && /usr/sbin/postfix reload && /usr/sbin/dovecot reload && systemctl reload nginx
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/mail.domain1.com.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert is due for renewal, auto-renewing...
Plugins selected: Authenticator webroot, Installer None
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for mail.domain1.com
http-01 challenge for mail.domain2.me
http-01 challenge for mail.domain3.dk
Waiting for verification...
Cleaning up challenges
Attempting to renew cert (mail.domain1.com) from /etc/letsencrypt/renewal/mail.domain1.com.conf produced an unexpected error: Failed authorization procedure. mail.domain1.com (http-01): urn:ietf:params:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching https://mail.domain1.com/.well-known/acme-challenge/1gWLVT4fTZURzV4FsUVBdaALm8WrVACN9oxGdfqIyDU: Error getting validation data, mail.domain3.dk (http-01): urn:ietf:params:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching https://mail.domain3.dk/.well-known/acme-challenge/aMMKjrgxegAo2vNv0kuEKgDZvpYyU8cS096BTEmZ7BE: Error getting validation data, mail.domain2.me (http-01): urn:ietf:params:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching https://mail.domain2.me/.well-known/acme-challenge/TKd5tkFrEp-7vFlNwzkESyeM7NT0ZH9F8bXbaiKThyM: Error getting validation data. Skipping.
All renewal attempts failed. The following certs could not be renewed:
  /etc/letsencrypt/live/mail.domain1.com/fullchain.pem (failure)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

All renewal attempts failed. The following certs could not be renewed:
  /etc/letsencrypt/live/mail.domain1.com/fullchain.pem (failure)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1 renew failure(s), 0 parse failure(s)

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

   Domain: mail.domain1.com
   Type:   connection
   Detail: Fetching
   https://mail.domain1.com/.well-known/acme-challenge/1gWLVT4fTZURzV4FsUVBdaALm8WrVACN9oxGdfqIyDU:
   Error getting validation data

   Domain: mail.domain3.dk
   Type:   connection
   Detail: Fetching
   https://mail.domain3.dk/.well-known/acme-challenge/aMMKjrgxegAo2vNv0kuEKgDZvpYyU8cS096BTEmZ7BE:
   Error getting validation data

   Domain: mail.domain2.me
   Type:   connection
   Detail: Fetching
   https://mail.domain2.me/.well-known/acme-challenge/TKd5tkFrEp-7vFlNwzkESyeM7NT0ZH9F8bXbaiKThyM:
   Error getting validation data

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A/AAAA 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.

My letsencrypt conf looks like this:

/etc/letsencrypt/renewal/mail.domain1.com.conf:

# renew_before_expiry = 30 days
version = 0.26.1
archive_dir = /etc/letsencrypt/archive/mail.domain1.com
cert = /etc/letsencrypt/live/mail.domain1.com/cert.pem
privkey = /etc/letsencrypt/live/mail.domain1.com/privkey.pem
chain = /etc/letsencrypt/live/mail.domain1.com/chain.pem
fullchain = /etc/letsencrypt/live/mail.domain1.com/fullchain.pem

# Options used in the renewal process
[renewalparams]
account = f7400c6bcee315325937cd807696f4e7
authenticator = webroot
server = https://acme-v02.api.letsencrypt.org/directory
[[webroot_map]]
mail.domain1.com = /var/www/html
mail.domain2.me = /var/www/html
mail.domain3.dk = /var/www/html

From the error it seems like the https://mail.domain1.com/.well-known/ac … e/TKd5t... URL isn't available - I guess it should be, but I'm not sure how this work?

In my /var/www/folder there isn't any subfolder named .well-known, so I assume this is the issue, but how to create this folder? I assume it isn't a manual process.

Really hope someone can help.

Thanks

Update:
I just double checked, and when I run the certificate update, the folder and files /var/www/html/.well-known/acme-challenge/... are being created (and then deleted again). So I'm thinking this might be a Nginx conf issue not allowing the prober access to the folder??

----

Spider Email Archiver: On-Premises, lightweight email archiving software developed by iRedMail team. Supports Amazon S3 compatible storage and custom branding.

2

Re: Letsencrypt renew failure

Solved

This seemed to be an issue with IPv6. In my DNS records I had added the IPv6 address, so Letsencrypt expect the server to reply on that address (port 80/443) and my Nginx wasn't configured with IPv6.
Two options:
1) Remove the IPv6 record from DNS (that was my quick solution, and then the renewal worked)
2) Configure Nginx with IPv6 (that will be my project for the weekend)