My domain is: id.hands.com & fast.hands.com (among others that have shown this behavior in the past)
I ran this command: dehydrated -c
It produced this output:
[deleted: previous successful renewals and/or skipping up-to-date certs for other domains]
...
Processing fast.hands.com
+ Checking domain name(s) of existing cert... unchanged.
+ Checking expire date of existing cert...
+ Valid till Apr 25 03:33:26 2023 GMT (Less than 30 days). Renewing!
+ Signing domains...
+ Generating private key...
+ Generating signing request...
+ Requesting new certificate order from CA...
+ Received 1 authorizations URLs from the CA
+ Handling authorization for fast.hands.com
+ 1 pending challenge(s)
+ Deploying challenge tokens...
+ Responding to challenge for fast.hands.com authorization...
+ Cleaning challenge tokens...
+ Challenge validation has failed :(
ERROR: Challenge is invalid! (returned: invalid) (result: ["type"] "http-01"
["status"] "invalid"
["error","type"] "urn:ietf:params:acme:error:connection"
["error","detail"] "78.129.164.123: Fetching https://fast.hands.com/.well-known/acme-challenge/YPtjiruRqXbrdWU5o6K5LttHd3PkQLmaW7yZZCxNFqQ:
Redirect loop detected"
["error","status"] 400
["error"] {"type":"urn:ietf:params:acme:error:connection","detail":"78.129.164.123: Fetching
https://fast.hands.com/.well-known/acme-challenge/YPtjiruRqXbrdWU5o6K5LttHd3PkQLmaW7yZZCxNFqQ: Redirect loop detected","status":400}
["url"] "https://acme-v02.api.letsencrypt.org/acme/chall-v3/214324257637/UsGFqg"
["token"] "YPtjiruRqXbrdWU5o6K5LttHd3PkQLmaW7yZZCxNFqQ"
["validationRecord",0,"url"] "http://fast.hands.com/.well-known/acme-challenge/YPtjiruRqXbrdWU5o6K5LttHd3PkQLmaW7yZZCxNFqQ"
["validationRecord",0,"hostname"] "fast.hands.com"
["validationRecord",0,"port"] "80"
["validationRecord",0,"addressesResolved",0] "78.129.164.123"
["validationRecord",0,"addressesResolved",1] "2001:1b40:5600:ff80:f8ee::1"
["validationRecord",0,"addressesResolved"] ["78.129.164.123","2001:1b40:5600:ff80:f8ee::1"]
["validationRecord",0,"addressUsed"] "2001:1b40:5600:ff80:f8ee::1"
["validationRecord",0] {"url":"http://fast.hands.com/.well-known/acme-challenge/YPtjiruRqXbrdWU5o6K5LttHd3PkQLmaW7yZZCxNFqQ","hostname":"fast.hands.com","port":"80","addressesResolved":["78.129.164.123","2001:1b40:5600:ff80:f8ee::1"],"addressUsed":"2001:1b40:5600:ff80:f8ee::1"}
["validationRecord",1,"url"] "https://fast.hands.com/.well-known/acme-challenge/YPtjiruRqXbrdWU5o6K5LttHd3PkQLmaW7yZZCxNFqQ"
["validationRecord",1,"hostname"] "fast.hands.com"
["validationRecord",1,"port"] "443"
["validationRecord",1,"addressesResolved",0] "78.129.164.123"
["validationRecord",1,"addressesResolved",1] "2001:1b40:5600:ff80:f8ee::1"
["validationRecord",1,"addressesResolved"] ["78.129.164.123","2001:1b40:5600:ff80:f8ee::1"]
["validationRecord",1,"addressUsed"] "2001:1b40:5600:ff80:f8ee::1"
["validationRecord",1] {"url":"https://fast.hands.com/.well-known/acme-challenge/YPtjiruRqXbrdWU5o6K5LttHd3PkQLmaW7yZZCxNFqQ","hostname":"fast.hands.com","port":"443","addressesResolved":["78.129.164.123","2001:1b40:5600:ff80:f8ee::1"],"addressUsed":"2001:1b40:5600:ff80:f8ee::1"}
["validationRecord",2,"url"] "http://fast.hands.com/.well-known/acme-challenge/YPtjiruRqXbrdWU5o6K5LttHd3PkQLmaW7yZZCxNFqQ"
["validationRecord",2,"hostname"] "fast.hands.com"
["validationRecord",2,"port"] "80"
["validationRecord",2,"addressesResolved",0] "78.129.164.123"
["validationRecord",2,"addressesResolved",1] "2001:1b40:5600:ff80:f8ee::1"
["validationRecord",2,"addressesResolved"] ["78.129.164.123","2001:1b40:5600:ff80:f8ee::1"]
["validationRecord",2,"addressUsed"] "78.129.164.123"
["validationRecord",2] {"url":"http://fast.hands.com/.well-known/acme-challenge/YPtjiruRqXbrdWU5o6K5LttHd3PkQLmaW7yZZCxNFqQ","hostname":"fast.hands.com","port":"80","addressesResolved":["78.129.164.123","2001:1b40:5600:ff80:f8ee::1"],"addressUsed":"78.129.164.123"}
["validationRecord"] [{"url":"http://fast.hands.com/.well-known/acme-challenge/YPtjiruRqXbrdWU5o6K5LttHd3PkQLmaW7yZZCxNFqQ","hostname":"fast.hands.com","port":"80","addressesResolved":["78.129.164.123","2001:1b40:5600:ff80:f8ee::1"],"addressUsed":"2001:1b40:5600:ff80:f8ee::1"},{"url":"https://fast.hands.com/.well-known/acme-challenge/YPtjiruRqXbrdWU5o6K5LttHd3PkQLmaW7yZZCxNFqQ","hostname":"fast.hands.com","port":"443","addressesResolved":["78.129.164.123","2001:1b40:5600:ff80:f8ee::1"],"addressUsed":"2001:1b40:5600:ff80:f8ee::1"},{"url":"http://fast.hands.com/.well-known/acme-challenge/YPtjiruRqXbrdWU5o6K5LttHd3PkQLmaW7yZZCxNFqQ","hostname":"fast.hands.com","port":"80","addressesResolved":["78.129.164.123","2001:1b40:5600:ff80:f8ee::1"],"addressUsed":"78.129.164.123"}]
["validated"] "2023-03-27T03:33:30Z")
My web server is (include version): nginx 1.18.0-6.1+deb11u3
The operating system my web server runs on is (include version): Debian GNU/Linux 11.6
My hosting provider, if applicable, is: (co-lo server)
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):
Dehydrated version: 0.7.0
GIT-Revision: unknown
OS: Debian GNU/Linux 11 (bullseye)
Used software:
bash: 5.1.4(1)-release
curl: 7.74.0
awk: GNU Awk 5.1.0, API: 3.0 (GNU MPFR 4.1.0, GNU MP 6.2.1)
sed: sed (GNU sed) 4.7
mktemp: mktemp (GNU coreutils) 8.32
grep: grep (GNU grep) 3.6
diff: diff (GNU diffutils) 3.7
openssl: OpenSSL 1.1.1n 15 Mar 2022
I don't actually need help with these domains now, because I've managed to get them all updated, but thought I ought to mention what worked, as it may point towards a bug in the validation server.
While trying various minor modifications to the server setup, and retrying, the certificate for fast.hands.com
was issued -- I'm pretty sure that nothing important changed to cause that, since it then failed in exactly the same way with id.hands.com
and making the same changes there had no effect.
I noted that what appeared to be going on is that the validation server connects to my server's IPv6 address, using HTTP on port 80, and is redirected (301) to HTTPS on 443, which appears to work. Then it connects again, this time to port 80 on my IPv4 address, and is again redirected (301) to HTTPS, but this time claims there's a Redirect loop and gives up.
I'm pretty sure that there's not really an issue at my end, because I persuaded it to work for id.hands.com
by changing its DNS entry to only list IPv4 -- at which point it worked as soon as the DNS update had propagated (having failed just before when I tried it too early, failing in the IPv4 attempt).
I'm happy to report this as a bug if someone can point me at the relevant bug tracker, and if there's anything I can do to help diagnose it at my end, just ask.