I'm using ngrok to demonstrate the ACME protocol on IIS/Windows. However, this service prefers CNAMEs over A records.
In debugging the interaction it seems that ACME only allows for A records. What is the security rationale for this behavior? What alternative is there?
Error message here:
{
"type": "http-01",
"status": "invalid",
"error": {
"type": "urn:acme:error:connection",
"detail": "DNS problem: SERVFAIL looking up A for dev.server.com",
"status": 400
},
dns-01
challenge as well, which usestxt
records. However, it's not supported in the official client (certbot) until the next release (0.9.0)SERVFAIL
. Shouldn't that beNXDOMAIN
instead? Even if there is no such A record? DNS server troubles maybe?NXDOMAIN
means that the RRname doesn't exist, whereasSERVFAIL
means that the DNS server experienced some kind of problem during name resolution. If the RRname exists but does not contain any RR of the requested type (for example, you havea.example.com. A 192.0.2.123
but nota.example.com. AAAA 2001:db8::3
, and you explicitly ask for theAAAA
) then you will get aNOERROR
response back with an empty answer section. Keep in mind that combiningCNAME
with RRs of any other type is strongly discouraged, and many resolvers may balk at it.