Certbot failed to authenticate some domains (authenticator: nginx). The Certificate Authority reported these problems: Domain: crawler.yt.lemnoslife.com Type: dns Detail: DNS problem: NXDOMAIN looking up A for crawler.yt.lemnoslife.com - check that a DNS record exists for this domain; DNS problem: NXDOMAIN looking up AAAA for crawler.yt.lemnoslife.com - check that a DNS record exists for this domain
Domain: private.yt.lemnoslife.com Type: dns Detail: DNS problem: NXDOMAIN looking up A for private.yt.lemnoslife.com - check that a DNS record exists for this domain; DNS problem: NXDOMAIN looking up AAAA for private.yt.lemnoslife.com - check that a DNS record exists for this domain
Hint: The Certificate Authority failed to verify the temporary nginx configuration changes made by Certbot. Ensure the listed domains point to this nginx server and that it is accessible from the internet.
Failed to renew certificate gitea.lemnoslife.com with error: Some challenges have failed.
Certbot failed to authenticate some domains (authenticator: nginx). The Certificate Authority reported these problems: Domain: crawler.yt.lemnoslife.com Type: dns Detail: DNS problem: NXDOMAIN looking up A for crawler.yt.lemnoslife.com - check that a DNS record exists for this domain; DNS problem: NXDOMAIN looking up AAAA for crawler.yt.lemnoslife.com - check that a DNS record exists for this domain
Domain: private.yt.lemnoslife.com Type: dns Detail: DNS problem: NXDOMAIN looking up A for private.yt.lemnoslife.com - check that a DNS record exists for this domain; DNS problem: NXDOMAIN looking up AAAA for private.yt.lemnoslife.com - check that a DNS record exists for this domain
Domain: yt4.lemnoslife.com Type: dns Detail: DNS problem: NXDOMAIN looking up A for yt4.lemnoslife.com - check that a DNS record exists for this domain; DNS problem: NXDOMAIN looking up AAAA for yt4.lemnoslife.com - check that a DNS record exists for this domain
Hint: The Certificate Authority failed to verify the temporary nginx configuration changes made by Certbot. Ensure the listed domains point to this nginx server and that it is accessible from the internet.
Failed to renew certificate gitlab.lemnoslife.com with error: Some challenges have failed.
The following renewals failed: /etc/letsencrypt/live/gitea.lemnoslife.com/fullchain.pem (failure) /etc/letsencrypt/live/gitlab.lemnoslife.com/fullchain.pem (failure) /etc/letsencrypt/live/private.yt.lemnoslife.com/fullchain.pem (failure) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 renew failure(s), 0 parse failure(s) Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot with -v for more details. ```
Mar 31, 11:44pm
Your issue stems from Certbot attempting to renew all certificates in your configuration, but failing for domains where DNS challenges (or other challenges) are not passing. You want to renew only those certificates that pass the verification challenge—i.e., only the ones that Certbot can successfully verify.
Solution: Renew Only Successfully Verified Certificates
1. Check Which Certificates Can Be Renewed
Certbot does not have a built-in flag to "only renew if the challenge passes," but you can:
Dry-run renewals to see which domains would succeed before actually renewing.
Manually specify only the domains that passed in your last successful renewal.
Step 1: Dry-run Renewal
Run a dry-run to see which certificates would pass:
(Replace the domains with the ones you want to renew.)
3. Automate the Process
If you want to automate this, you can write a script that:
Parses the output of certbot renew --dry-run to identify which certificates would succeed.
Only renews those certificates.
Example Script
bash
#!/bin/bash
# Dry-run to get successful domains
successful_domains=(
"gitea.lemnoslife.com-0001"
"overleaf.lemnoslife.com"
"pim.etesync.lemnoslife.com"
"server0.lemnoslife.com"
"v.lemnoslife.com"
"videos.lemnoslife.com"
)
# Renew only the successful domains
for domain in "${successful_domains[@]}"; do
certbot renew --cert-name "$domain" --nginx-ctl /usr/sbin/nginx
done
Save this as renew_certs.sh, make it executable (chmod +x renew_certs.sh), and run it.
4. Debugging Failed Renewals
For the domains that failed (gitea.lemnoslife.com, gitlab.lemnoslife.com, private.yt.lemnoslife.com), check:
DNS records: Ensure A and AAAA records exist for all domains.
Nginx configuration: Ensure Certbot can temporarily modify your Nginx config for the challenge.
Rate limits: You hit a rate limit for private.yt.lemnoslife.com. Wait before retrying.
5. Automate with Certbot Hooks (Advanced)
You can use Certbot's --pre-hook and --post-hook to run checks before/after renewal, but this is more complex.