-
-
Notifications
You must be signed in to change notification settings - Fork 627
Description
A user in IRC noticed that they were suffering HTTP-01 validation failures for a domain that previously worked. Investigating it appears the domain had an AAAA record and an A record but the AAAA address wasn't working. I expected the IPv6 to IPv4 fallback code would have masked this issue but looking at the validation records it did not, there is no addressTried
, and the addressUsed
is the v6 address:
"validationRecord": [
{
"url": "http://xxxxx/.well-known/acme-challenge/XXXXXXXXXXXXX",
"hostname": "XXXXX",
"port": "80",
"addressesResolved": [
"92.XXX.XXX.XXX",
"2001:XXXX:XXXX:XXXX::111"
],
"addressUsed": "2001:XXXX:XXXX:XXXX::111",
"addressesTried": null
}
]
The VA logged:
HTTP request to http://xxxxx/.well-known/acme-challenge/XXXXXXXXXXXXX failed. err=[&url.Error{Op:"Get", URL:"http://xxxxx/.well-known/acme-challenge/XXXXXXXXXXXXX", Err:(*http.httpError)(0xc420c89260)}] errStr=[Get http://xxxxx/.well-known/acme-challenge/XXXXXXXXXXXXX: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)]
The root cause is the VA's HTTP-01 dialer wrapper is re-using the same underlying net.Dialer with an expended timeout between the initial and subsequent fallback connection.