Please fill out the fields below so we can help you better. Note: you must provide your domain name to get help. Domain names for issued certificates are all made public in Certificate Transparency logs (e.g. crt.sh | example.com), so withholding your domain name here does not increase secrecy, but only makes it harder for us to provide help.
My domain is:
I ran this command:
certbot renew \
--preferred-challenges=dns \
--manual-auth-hook ./authenticator.sh \
--manual-cleanup-hook ./cleanup.sh \
--server "https://acme-v02.api.letsencrypt.org/directory"
I have custom Authenticator/Cleanup scripts which are designed to add and remove the appropriate TXT records from Namecheap
It produced this output:
Certbot failed to authenticate some domains (authenticator: manual). The Certificate Authority reported these problems:
Domain: ohmvision.com
Type: unauthorized
Detail: Incorrect TXT record "EzNjxZH9-koDAj5QBhQlUcxHoWTNBQAwd8JML6GRGoY" found at _acme-challenge.ohmvision.com
Hint: The Certificate Authority failed to verify the DNS TXT records created by the --manual-auth-hook. Ensure that this hook is functioning correctly and that it waits a sufficient duration of time for DNS propagation. Refer to "certbot --help manual" and the Certbot User Guide.
My hosting provider, if applicable, is:
Namecheap
I can login to a root shell on my machine (yes or no, or I don't know):
yes
The version of my client is (e.g. output of certbot --version
or certbot-auto --version
if you're using Certbot):
certbot 2.1.0
----------------- SUMMARY
So fundamentally, I have a single wildcard certificate for ohmvision.com and *.ohmvision.com
I've noticed that through the renewal command, it attempts to authenticate ohmvision.com and *.ohmvision.com with two separate TXT records on the same host. (ie. ohmvision.com will get "A" as the challenge text and *.ohmvision.com will get "B" as the challenge text)
This seems to pose a problem for certbot which cannot seem to properly resolve the correct TXT record as they both resolve to _acme-challenge.ohmvision.com
I've tried a few different variants to work around this challenge.
- Adding both TXT records appears to confuse certbot and result in consistent failure - nothing is renewed
- Adding the first TXT challenge fails the second domain (*.ohmvision.com) consistently - nothing is renewed
- Adding the last TXT challenge fails the first domain (ohmvision.com) on the FIRST run, but when I run the exact same command again, everything renews correctly
Not sure where to go from here, I've updated my code to process the renewal twice for the time being, but this just seems like a really bad workaround.
Is there something I'm missing here?