Yes. You can change or delete the TXT
record as soon as a validation is completed. An old TXT
record never matters again, so you can do anything you want.
"cerbot-auto renew
", by default, tries to renew any certificates expiring in less than 30 days. It's recommended to run it twice a day. (The other 59 or so days, it won't do anything.)
Authorizations are currently valid for 30 days.
So, typically, you'll have to validate again -- with a new TXT
record value -- every time you renew.
(Authorizations are specific to an account. Consider whether to share one account between all of your servers, or use a different account on each server.)
You can't know the new TXT
record value before starting a new validation. And you should clean up and delete old TXT
records. So that sort of conflict isn't a factor.
The existing protocol and software always use _acme-challenge.my-domain.io
, though you can use CNAME
records.
As far as Let's Encrypt goes, concurrent DNS validations are pretty much fine. If you have multiple TXT
records, Boulder will go through the list and see if one of them matches.
In the current implementation, the DNS response can't be larger than 4096 bytes, RRSIG
records not counted. No one should need scores of TXT
records to exist simultaneously.
DNS providers and ACME clients can be a problem. DNS providers don't always support an atomic, non-racey way to add and remove records from a record set. ACME clients don't always check, just overwriting or deleting the record set. Any client that supports wildcards has probably improved or entirely fixed this, since so many people now do two simultaneous validations for the same name.
@nodesocket
It would be best to use a DNS provider and ACME client that support fully automated, race condition-free TXT
record changes. Remember that you can delegate or CNAME
the subdomain to a different DNS provider. (Usually.)
Also consider sharing the same certificate on all servers, perhaps centrally managed by one server and copied to the others.