I'm encountering this problem for the first time after many years of successful use. On a new server built out like all the rest, I'm getting 404's on all of my "secondary validation" challenge checks.
I've traced this to challenge files being mixed case, while the URLs letsencrypt is requesting are all lower case, but otherwise the same.
If I didn't know any better, I would say the problem is simple... someone shipped a change that only works on a case-insensitive system, like a Mac or Windows box, and it's busted for Linux!
Except, certbot 2.11.0 came out on June 5th! And there is nothing newer. So... surely I wouldn't be anywhere near the only one... right????
Thanks for your help, I'm truly mystified and behind the 8-ball here.
My domain is:
I ran this command:
sudo podman run -it --rm -v "/var/www/certbot:/var/www/certbot" -v "/etc/letsencrypt:/etc/letsencrypt" -v "/var/lib/letsencrypt:/var/lib/letsencrypt" certbot/certbot certonly -n --agree-tos --email ops@apostrophecms.com --domains feedkidsma.org --webroot --webroot-path /var/www/certbot/ -vvv
It produced this output:
...
Creating root challenges validation dir at /var/www/certbot/.well-known/acme-challenge
Attempting to save validation to /var/www/certbot/.well-known/acme-challenge/ZRWGCMvYTTLeKUD3oN5SIsVEm5YzqDOEozbdn-7eOgU
(NOTE: MIXED CASE FILENAME)
Certbot failed to authenticate some domains (authenticator: webroot). The Certificate Authority reported these problems:
Domain: www.feedkidsma.org
Type: unauthorized
Detail: 35.168.251.141: Invalid response from https://feedkidsma.org/.well-known/acme-challenge/zrwgcmvyttlekud3on5sisvem5yzqdoeozbdn-7eogu: 404
NOTE: ALL LOWERCASE URL, otherwise the same
My web server is (include version):
nginx 1.18.0, but note I'm using --webroot directly with the docker image here, so probably not an nginx issue per se.
I manually created a test file in /var/www/certbot and was able to access it at the expected URL using this location block:
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
The operating system my web server runs on is (include version):
ubuntu 22.04
My hosting provider, if applicable, is:
AWS (EC2)
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):
No
The version of my client is (e.g. output of certbot --version
or certbot-auto --version
if you're using Certbot):
certbot 2.11.0 (via the official container image)
If someone suspects another explanation I have the full verbose output (-vvv), I'm not sure if that contains any secrets I shouldn't divulge off the machine, let me know.