Hi, recently I started to receive emails from Let's Encrypt _certificate expirat…ion notice_ regarding cert for my wildcare domain about to expire soon.
As it is managed by caddy (running in as docker container) I thought caddy will automatically renew it.
Now we are a few days after the expiration deadline but caddy didnt renewed it and my cert are not valid anymore.
Also I can see a bunch of errors in caddy logs
```
{"level":"info","ts":1733231486.255284,"msg":"using config from file","file":"/etc/caddy/Caddyfile"}
{"level":"info","ts":1733231486.2589455,"msg":"adapted config to JSON","adapter":"caddyfile"}
{"level":"info","ts":1733231486.2598727,"msg":"redirected default logger","from":"stderr","to":"stdout"}
2024/12/03 13:11:26 INFO admin admin endpoint started {"address": "localhost:2019", "enforce_origin": false, "origins": ["//[::1]:2019", "//127.0.0.1:2019", "//localhost:2019"]}
2024/12/03 13:11:26 INFO tls.cache.maintenance started background certificate maintenance {"cache": "0xc00071fb80"}
2024/12/03 13:11:26 INFO http.auto_https server is listening only on the HTTPS port but has no TLS connection policies; adding one to enable TLS {"server_name": "srv1", "https_port": 443}
2024/12/03 13:11:26 INFO http.auto_https enabling automatic HTTP->HTTPS redirects {"server_name": "srv1"}
2024/12/03 13:11:26 INFO crowdsec initializing streaming bouncer {"instance_id": "1234"}
2024/12/03 13:11:26 INFO crowdsec using API key auth {"instance_id": "1234", "address": "http://crowdsec:8080/"}
2024/12/03 13:11:26 INFO crowdsec started {"instance_id": "1234"}
2024/12/03 13:11:26 INFO http.log server running {"name": "srv0", "protocols": ["h1", "h2", "h3"]}
2024/12/03 13:11:26 INFO http enabling HTTP/3 listener {"addr": ":443"}
{"level":"info","ts":1733231486.2620034,"msg":"failed to sufficiently increase receive buffer size (was: 208 kiB, wanted: 7168 kiB, got: 416 kiB). See https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes for details."}
2024/12/03 13:11:26 INFO dynamic_dns Loaded dynamic domains {"domains": ["*.mydomain.fr", "mydomain.fr"]}
2024/12/03 13:11:26 INFO dynamic_dns Adding dynamic domain {"domain": "*"}
2024/12/03 13:11:26 INFO dynamic_dns Adding dynamic domain {"domain": "@"}
2024/12/03 13:11:26 INFO http.log server running {"name": "srv1", "protocols": ["h1", "h2", "h3"]}
2024/12/03 13:11:26 INFO http.log server running {"name": "srv2", "protocols": ["h1", "h2", "h3"]}
2024/12/03 13:11:26 INFO http.log server running {"name": "remaining_auto_https_redirects", "protocols": ["h1", "h2", "h3"]}
2024/12/03 13:11:26 INFO http enabling automatic TLS certificate management {"domains": ["mydomain.fr", "*.mydomain.fr"]}
2024/12/03 13:11:26 WARN tls stapling OCSP {"error": "no OCSP stapling for [*.mydomain.fr]: parsing OCSP response: ocsp: error from server: unauthorized", "identifiers": ["*.mydomain.fr"]}
2024/12/03 13:11:26 INFO tls certificate needs renewal based on ARI window {"subjects": ["*.mydomain.fr"], "expiration": "2024/11/29 09:15:23", "ari_cert_id": "qsdlfkjqsmdfjqsm", "next_ari_update": "2024/12/03 18:23:28", "renew_check_interval": 600, "window_start": "2024/10/29 09:34:52", "window_end": "2024/10/31 09:34:52", "selected_time": "2024/10/30 16:09:40", "renewal_cutoff": "2024/10/30 15:59:40"}
2024/12/03 13:11:26 INFO autosaved config (load with --resume flag) {"file": "/config/caddy/autosave.json"}
2024/12/03 13:11:26 INFO serving initial configuration
2024/12/03 13:11:26 INFO tls.renew acquiring lock {"identifier": "*.mydomain.fr"}
2024/12/03 13:11:26 INFO tls.renew lock acquired {"identifier": "*.mydomain.fr"}
2024/12/03 13:11:26 INFO tls storage cleaning happened too recently; skipping for now {"storage": "FileStorage:/data/caddy", "instance": "qsdjhfqskdfhqsd", "try_again": "2024/12/04 13:11:26", "try_again_in": 86399.999999577}
2024/12/03 13:11:26 INFO tls finished cleaning storage units
2024/12/03 13:11:26 INFO tls.renew renewing certificate {"identifier": "*.mydomain.fr", "remaining": -359763.565185262}
2024/12/03 13:11:26 INFO tls.issuance.acme waiting on internal rate limiter {"identifiers": ["*.mydomain.fr"], "ca": "https://acme-v02.api.letsencrypt.org/directory", "account": "me@gmail.com"}
2024/12/03 13:11:26 INFO tls.issuance.acme done waiting on internal rate limiter {"identifiers": ["*.mydomain.fr"], "ca": "https://acme-v02.api.letsencrypt.org/directory", "account": "me@gmail.com"}
2024/12/03 13:11:26 INFO tls.issuance.acme using ACME account {"account_id": "https://acme-v02.api.letsencrypt.org/acme/acct/1111", "account_contact": ["mailto:me@gmail.com"]}
2024/12/03 13:11:27 INFO tls.issuance.acme.acme_client trying to solve challenge {"identifier": "*.mydomain.fr", "challenge_type": "dns-01", "ca": "https://acme-v02.api.letsencrypt.org/directory"}
2024/12/03 13:11:27 INFO dynamic_dns domain not found in DNS {"domain": "mydomain.fr"}
2024/12/03 13:11:27 INFO dynamic_dns domain not found in DNS {"domain": "*.mydomain.fr"}
2024/12/03 13:11:27 INFO dynamic_dns domain not found in DNS {"domain": "mydomain.fr"}
2024/12/03 13:13:31 ERROR tls.renew could not get certificate from issuer {"identifier": "*.mydomain.fr", "issuer": "acme-v02.api.letsencrypt.org-directory", "error": "[*.mydomain.fr] solving challenges: waiting for solver certmagic.solverWrapper to be ready: timed out waiting for record to fully propagate; verify DNS provider configuration is correct - last error: <nil> (order=https://acme-v02.api.letsencrypt.org/acme/order/1111/111) (ca=https://acme-v02.api.letsencrypt.org/directory)"}
2024/12/03 13:13:31 ERROR tls.renew will retry {"error": "[*.mydomain.fr] Renew: [*.mydomain.fr] solving challenges: waiting for solver certmagic.solverWrapper to be ready: timed out waiting for record to fully propagate; verify DNS provider configuration is correct - last error: <nil> (order=https://acme-v02.api.letsencrypt.org/acme/order/1111/111) (ca=https://acme-v02.api.letsencrypt.org/directory)", "attempt": 1, "retrying_in": 60, "elapsed": 124.610196519, "max_duration": 2592000}
2024/12/03 13:14:31 INFO tls.renew renewing certificate {"identifier": "*.mydomain.fr", "remaining": -359948.17783085}
2024/12/03 13:14:31 INFO tls.issuance.acme using ACME account {"account_id": "https://acme-staging-v02.api.letsencrypt.org/acme/acct/1234", "account_contact": ["mailto:me@gmail.com"]}
2024/12/03 13:14:32 INFO tls.issuance.acme.acme_client trying to solve challenge {"identifier": "*.mydomain.fr", "challenge_type": "dns-01", "ca": "https://acme-staging-v02.api.letsencrypt.org/directory"}
2024/12/03 13:16:35 ERROR tls.renew could not get certificate from issuer {"identifier": "*.mydomain.fr", "issuer": "acme-v02.api.letsencrypt.org-directory", "error": "[*.mydomain.fr] solving challenges: waiting for solver certmagic.solverWrapper to be ready: timed out waiting for record to fully propagate; verify DNS provider configuration is correct - last error: <nil> (order=https://acme-staging-v02.api.letsencrypt.org/acme/order/111/111) (ca=https://acme-staging-v02.api.letsencrypt.org/directory)"}
2024/12/03 13:16:35 ERROR tls.renew will retry {"error": "[*.mydomain.fr] Renew: [*.mydomain.fr] solving challenges: waiting for solver certmagic.solverWrapper to be ready: timed out waiting for record to fully propagate; verify DNS provider configuration is correct - last error: <nil> (order=https://acme-staging-v02.api.letsencrypt.org/acme/order/111/111) (ca=https://acme-staging-v02.api.letsencrypt.org/directory)", "attempt": 2, "retrying_in": 120, "elapsed": 308.595021981, "max_duration": 2592000}
```
Is that expected?
my config _redacted_
```
{
email me@gmail.com
dynamic_dns {
provider cloudflare {env.CLOUDFLARE_API_TOKEN}
domains {
mydomain.fr
}
check_interval 10m
versions ipv4
dynamic_domains
}
servers {
metrics
}
# debug
}
*.mydomain.fr, mydomain.fr {
tls {
dns cloudflare {env.CLOUDFLARE_API_TOKEN}
}
[...]
```