boulder
boulder copied to clipboard
feat: add ACME "dns-account-01" challenge
Description:
This pull request addresses https://github.com/letsencrypt/boulder/issues/7240 by integrating the "dns-account-01" challenge into Boulder. This challenge introduces a novel method for domain control validation within the ACME protocol.
Background:
The "dns-account-01" challenge, in its current Internet Draft form, introduces an additional approach for domain control validation. It uses a DNS resource linked to the ACME Account Resource URL and the authorization scope, offering enhanced flexibility and security in domain validation processes.
Changes:
- In
va/dns.go
, thegetDNSAccountChallengeSubdomain
function has been introduced to compute the DNS subdomain forDNSAccount01
challenges based on the account's resource URL and scope. - The
validateTXT
function has been added to query TXT records associated with a challenge subdomain and validate the authorization keys. - The existing
validateDNS01
function continues to validateDNS01
challenges but now leveragesvalidateTXT
for validation. - The new
validateDNSAccount01
function constructs the challenge subdomain usinggetDNSAccountChallengeSubdomain
and validates the authorization keys forDNSAccount01
challenges. -
va/va_test.go
has been updated to test the validation of malformed challenges with the new scope parameter. - Integration test
TestDNSAccountChallenge
has been added to validate the end-to-end functionality ofDNSAccount01
challenges.
Vendor Dependency Updates:
- Updated
github.com/eggsampler/acme/v3
to versionv3.5.0
.
These changes enhance the security and flexibility of Boulder's validation process for DNS-based challenges, particularly with the introduction of support for the DNSAccount01
challenge type, thereby improving the overall robustness of the system.
Hey friends, I think the bulk of the work here is complete for the moment. I am beginning a thru-hike of the Appalachian Trail and will not be available to work on this for the time being. If there are any adjustments needed due to spec changes, bugs or nits, someone else will need to make those changes before merging. Best, Shiloh