I use letsencrypt-auto command to renew my existing certificate on a monthly basis. It worked over a year without any problems but it seems stopped working since Dec 2018. The last successful renewal was on Nov 2, 2018. I changed nothing in the configuration of my system so I don’t know why it doesn’t work anymore.
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.
My web server is (include version): apache 2.4
The operating system my web server runs on is (include version): Raspbian GNU/Linux 8 (jessie)
My hosting provider, if applicable, is: n/a
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): Remote Desktop Connection
My certificate is valid until Jan 31, 2019. Any help before this date would be appreciated.
So I assume my $document_root is /var/www on my Raspberry PI. Should there be a path
/var/www/.well-known/acme-challenge or do I need to create this path?
My /var/www directory doesn’t contain a .well-known/acme-challenge path.
It's because of the TLS-SNI-01 validation method deprecation. The previous method that Certbot used to prove your control over your domain name used port 443. But this method has a security problem in some shared hosting environments and Let's Encrypt is going to completely discontinue it in mid-February.
As a result, Certbot changed its default behavior in advance of this change so that it uses a different method (HTTP-01 on port 80). Apparently this isn't working properly in your configuration, while the old method did. I'm still trying to figure out why this is happening for some people, because the new method works properly for most people in most configurations, but apparently not all.
The -a webroot suggestion from @JuergenAuer is a good option if it works and you don't want to spend a long time diving into a potential Certbot bug related to Apache configuration parsing. (but if you do, please let me know!)
Hi,
Thanks for all the good hints. The reason was that port 80 was not open for my domain as I used port 443 before. That was probable the reason for the “unauthorized” response. I opened port 80 to my domain and now it works perfectly.