Hi,
I've been successfully using acme-dns for my letsencrypt dns-01 validation for years. As of today, all renewals are failing with the following error:
[error,type]|urn:ietf:params:acme:error:dns|
[error,detail]|DNS problem: NXDOMAIN looking up TXT for _acme-challenge.doorpi.sembritzki.me - check that a DNS record exists for this domain|
This happens independent of client (I've been using acme.sh and dehydrated in production and both are failing).
dig shows that the txt records do indeed exist.
Example record this is happening for: _acme-challenge.doorpi.sembritzki.me
Hm, there has been no changes to dns. I'm also experiencing the same issue with domains hosted elsewhere (= different nameserver). An example domain would be _acme-challenge.3cx.stadt-luetjenburg.de.
I was able to reproduce the NXDOMAIN with 1.0.0.1. However, 8.8.8.8 does return the correct CNAME.
Very weird... Do you have any ideas what could be causing this?
That is on purpose. Only the _acme-challenge subdomain is supposed to exist on the public dns. It's a split-dns setup and the domain we need the cert for is only used internally.
No, for an unknown reason some nameservers (e.g. 1.1.1.1) return the txt correctly and some (e.g. 8.8.8.8) return NXDOMAIN. Unfortunately, the letsencrypt dns-01 validation seems to use the latter.
The nameservers returning NXDOMAIN never even hit my acme-dns nameserver.
Let's Encrypt DNS validation uses Unbound (like the linked test). Caching nameservers are not used for dns-01, only the nameservers you point to are, so your primary nameservers(s) are queried, then they following the CNAME to your acme-dns hosted zone and get the TXT record from there. A side-effect of this is that your acme-dns service is also a nameserver for it's own subdomain zone, so it needs to be behaving.
So from what I can tell the only thing they need to get right is your CNAME, and the acme-dns response. This works for me: dig @acme-dns.sembritzki.org -t TXT 5908a2ba-5891-4cec-a741-1547d0244029.acme-dns.sembritzki.org
The dig command does work for me too, but for some reason unclear to me, letsencrypt returns the following error:
"DNS problem: NXDOMAIN looking up TXT for _acme-challenge.doorpi.sembritzki.me - check that a DNS record exists for this domain" (I can reproduce this 100%, just did it again).
I can see on the acme-dns server side, that letsencrypt isn't even hitting my acme-dns server.
I notice that DNS Vis gets annoyed that one of the nameservers for sembritzki.me/sembritzki.org isn't resolving UDP queries (maybe TCP only): _acme-challenge.doorpi.sembritzki.me | DNSViz - no idea if that would have any impact.
Has anything at all changed in your acme dns server? Rebuild or config updates?
No, there were no changes at all. The problem occured completely out of the blue.
While trying to fix this, I have updated acme-dns to the latest release (my docker container was one release behind), but that didn't help.
I'm also quite confused about the dns viz result, that ns2.routing.net isn't resolving UDP queries, because it does for me: dig -6 @ns2.routing.net sembritzki.org +notcp
Edit: dnsviz is not reporting the ipv6 error anymore. However, my issue still persists.