Can not register for example.com and *.example.com at same time with dns-01 challenge #16
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
When we register with like
example.com
and*.example.com
. acme will test all the domains parallelly, and then request certificates serially.example.com
and*.example.com
using the same challenge dns name_acme-challenge.example.com
, when testing domains, it will fail for competition. But we can disable testing by settingskipChallengeTest
to avoid test failing temporary.But the following step has another issue that will lead to failure.
That is the
removeChallenge
flow:https://git.coolaj86.com/coolaj86/acme-v2.js/src/branch/master/node.js#L389
Here we returned without waiting removing complete. When executing 2rd domain to update the same dns record, there's a great chance that the record has been deleted.
The TXT records could be multiple. So the
removeChallenge
sequence should not be the problem.So we should call
challenge.set
concurrently forexample.com
and*.example.com
before requesting acme server to validate?ACME server validate TXT record only once for one order?
I have validated two TXT records as acem-v2.js's sequence, but ACME server only found the first TXT records for two requests. So the second is not match.
cerbot
works well with this.It seams that update all dns record of domains at the same time before submitting to ACME server in
certbot
.It is relative codes below.
https://github.com/certbot/certbot/blob/master/certbot/plugins/dns_common.py#L46
@taoyuan, sorry I didn't reply to this sooner. I had it on my plate to look at that.
I just spent a bunch of time going through the wildcard use case and adding a bunch of tests.
The plugin architecture is 10x simpler now and if you still need the node / javascript solution I'm confident that you'll find it functions exactly as it should now.
If you want to write a DNS plugin, here's the test harness:
And here's the fully-tested reference implementation:
I'm going to close this out, but feel free to re-open it.
Thanks for being so diligent in really digging into the problem to uncover helpful information.