Hi,
I'm stumped on this error.
Router uses a non-existent certificate resolver certificateResolver=letsencrypt
My traefik.yml looks like this
# Docker configuration backend
providers:
docker:
defaultRule: "Host(`{{ trimPrefix `/` .Name }}.docker.localhost`)"
exposedByDefault: false
file:
filename: /dynamic.yml
# API and dashboard configuration
api:
insecure: true
dashboard: true
entryPoints:
http:
address: ":80"
http:
redirections:
entryPoint:
to: https
https:
address: ":443"
http:
middlewares:
- secureHeaders@file
tls:
certResolver: letsencrypt
certificatesResolvers:
letsEncrypt:
acme:
email: me@mydomain.com
caServer: https://acme-staging-v02.api.letsencrypt.org/directory
storage: /acme/acme.json
dnsChallenge:
provider: duckdns
delayBeforeCheck: "42"
log:
level: DEBUG
My docker-compose looks like this
traefik:
image: "traefik:latest"
container_name: "traefik"
hostname: "traefik"
environment:
- DUCKDNS_TOKEN=${DUCKDNS_TOKEN}
ports:
- "80:80"
- "443:443"
- "9090:8080"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "${ROOT}/config/traefik/traefik.yml:/traefik.yml:ro"
- "${ROOT}/config/traefik/dynamic.yml:/dynamic.yml:ro"
- acme:/acme
volumes:
acme:
I can't figure out what the issue is with the certificate resolver. I've tried deleting the acme.json (it gets recreated empty) and I've checked the permissions on the file look ok
Logs are here (lightly edited for privacy/brevity)
2024-05-24 16:17:43 2024-05-24T23:17:43Z INF github.com/traefik/traefik/v3/cmd/traefik/traefik.go:100 > Traefik version 3.0.1 built on 2024-05-22T13:12:16Z version=3.0.1
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/cmd/traefik/traefik.go:107 > Static configuration loaded [json] staticConfiguration={"api":{"dashboard":true,"insecure":true},"certificatesResolvers":{"letsEncrypt":{"acme":{"caServer":"https://acme-staging-v02.api.letsencrypt.org/directory","certificatesDuration":2160,"dnsChallenge":{"delayBeforeCheck":"42s","provider":"duckdns"},"email":"me@mydomain.com","keyType":"RSA4096","storage":"/acme/acme.json"}}},"entryPoints":{"http":{"address":":80","forwardedHeaders":{},"http":{"redirections":{"entryPoint":{"permanent":true,"priority":9223372036854775806,"scheme":"https","to":"https"}}},"http2":{"maxConcurrentStreams":250},"transport":{"lifeCycle":{"graceTimeOut":"10s"},"respondingTimeouts":{"idleTimeout":"3m0s","readTimeout":"1m0s"}},"udp":{"timeout":"3s"}},"https":{"address":":443","forwardedHeaders":{},"http":{"middlewares":["secureHeaders@file"],"tls":{"certResolver":"letsencrypt"}},"http2":{"maxConcurrentStreams":250},"transport":{"lifeCycle":{"graceTimeOut":"10s"},"respondingTimeouts":{"idleTimeout":"3m0s","readTimeout":"1m0s"}},"udp":{"timeout":"3s"}},"traefik":{"address":":8080","forwardedHeaders":{},"http":{},"http2":{"maxConcurrentStreams":250},"transport":{"lifeCycle":{"graceTimeOut":"10s"},"respondingTimeouts":{"idleTimeout":"3m0s","readTimeout":"1m0s"}},"udp":{"timeout":"3s"}}},"global":{"checkNewVersion":true},"log":{"format":"common","level":"DEBUG"},"providers":{"docker":{"defaultRule":"Host(`{{ trimPrefix `/` .Name }}.docker.localhost`)","endpoint":"unix:///var/run/docker.sock","watch":true},"file":{"filename":"/dynamic.yml","watch":true},"providersThrottleDuration":"2s"},"serversTransport":{"maxIdleConnsPerHost":200},"tcpServersTransport":{"dialKeepAlive":"15s","dialTimeout":"30s"}}
2024-05-24 16:17:43 2024-05-24T23:17:43Z INF github.com/traefik/traefik/v3/cmd/traefik/traefik.go:605 >
2024-05-24 16:17:43 2024-05-24T23:17:43Z INF github.com/traefik/traefik/v3/pkg/server/configurationwatcher.go:73 > Starting provider aggregator aggregator.ProviderAggregator
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/server/server_entrypoint_tcp.go:220 > Starting TCP Server entryPointName=https
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/server/server_entrypoint_tcp.go:220 > Starting TCP Server entryPointName=http
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/server/server_entrypoint_tcp.go:220 > Starting TCP Server entryPointName=traefik
2024-05-24 16:17:43 2024-05-24T23:17:43Z INF github.com/traefik/traefik/v3/pkg/provider/aggregator/aggregator.go:202 > Starting provider *file.Provider
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/provider/aggregator/aggregator.go:203 > *file.Provider provider configuration config={"filename":"/dynamic.yml","watch":true}
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/provider/file/file.go:122 > add watcher on: /
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/provider/file/file.go:122 > add watcher on: /dynamic.yml
2024-05-24 16:17:43 2024-05-24T23:17:43Z INF github.com/traefik/traefik/v3/pkg/provider/aggregator/aggregator.go:202 > Starting provider *traefik.Provider
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/provider/aggregator/aggregator.go:203 > *traefik.Provider provider configuration config={}
2024-05-24 16:17:43 2024-05-24T23:17:43Z INF github.com/traefik/traefik/v3/pkg/provider/aggregator/aggregator.go:202 > Starting provider *acme.ChallengeTLSALPN
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/provider/aggregator/aggregator.go:203 > *acme.ChallengeTLSALPN provider configuration config={}
2024-05-24 16:17:43 2024-05-24T23:17:43Z INF github.com/traefik/traefik/v3/pkg/provider/aggregator/aggregator.go:202 > Starting provider *docker.Provider
2024-05-24 16:17:43 2024-05-24T23:17:43Z INF github.com/traefik/traefik/v3/pkg/provider/aggregator/aggregator.go:202 > Starting provider *acme.Provider
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/provider/aggregator/aggregator.go:203 > *docker.Provider provider configuration config={"defaultRule":"Host(`{{ trimPrefix `/` .Name }}.docker.localhost`)","endpoint":"unix:///var/run/docker.sock","watch":true}
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/provider/aggregator/aggregator.go:203 > *acme.Provider provider configuration config={"HTTPChallengeProvider":{},"ResolverName":"letsEncrypt","TLSChallengeProvider":{},"caServer":"https://acme-staging-v02.api.letsencrypt.org/directory","certificatesDuration":2160,"dnsChallenge":{"delayBeforeCheck":"42s","provider":"duckdns"},"email":"me@mydomain.com","keyType":"RSA4096","storage":"/acme/acme.json","store":{}}
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/provider/acme/provider.go:213 > Attempt to renew certificates "720h0m0s" before expiry and check every "24h0m0s" acmeCA=https://acme-staging-v02.api.letsencrypt.org/directory providerName=letsEncrypt.acme
2024-05-24 16:17:43 2024-05-24T23:17:43Z INF github.com/traefik/traefik/v3/pkg/provider/acme/provider.go:795 > Testing certificate renew... acmeCA=https://acme-staging-v02.api.letsencrypt.org/directory providerName=letsEncrypt.acme
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/server/configurationwatcher.go:227 > Configuration received config={"http":{"middlewares":{"secureHeaders":{"headers":{"forceSTSHeader":true,"sslRedirect":true,"stsIncludeSubdomains":true,"stsPreload":true,"stsSeconds":31536000}}}},"tcp":{},"tls":{},"udp":{}} providerName=file
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/server/configurationwatcher.go:227 > Configuration received config={"http":{"middlewares":{"dashboard_redirect":{"redirectRegex":{"permanent":true,"regex":"^(http:\\/\\/(\\[[\\w:.]+\\]|[\\w\\._-]+)(:\\d+)?)\\/$","replacement":"${1}/dashboard/"}},"dashboard_stripprefix":{"stripPrefix":{"prefixes":["/dashboard/","/dashboard"]}},"redirect-http-to-https":{"redirectScheme":{"permanent":true,"port":"443","scheme":"https"}}},"models":{"https":{"middlewares":["secureHeaders@file"],"tls":{"certResolver":"letsencrypt"}}},"routers":{"api":{"entryPoints":["traefik"],"priority":9223372036854775806,"rule":"PathPrefix(`/api`)","ruleSyntax":"v3","service":"api@internal"},"dashboard":{"entryPoints":["traefik"],"middlewares":["dashboard_redirect@internal","dashboard_stripprefix@internal"],"priority":9223372036854775805,"rule":"PathPrefix(`/`)","ruleSyntax":"v3","service":"dashboard@internal"},"http-to-https":{"entryPoints":["http"],"middlewares":["redirect-http-to-https"],"priority":9223372036854775806,"rule":"HostRegexp(`^.+$`)","ruleSyntax":"v3","service":"noop@internal"}},"serversTransports":{"default":{"maxIdleConnsPerHost":200}},"services":{"api":{},"dashboard":{},"noop":{}}},"tcp":{"serversTransports":{"default":{"dialKeepAlive":"15s","dialTimeout":"30s"}}},"tls":{},"udp":{}} providerName=internal
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/server/configurationwatcher.go:227 > Configuration received config={"http":{},"tcp":{},"tls":{},"udp":{}} providerName=letsEncrypt.acme
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/provider/docker/pdocker.go:89 > Provider connection established with docker 26.1.1 (API 1.45) providerName=docker
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/provider/docker/config.go:184 > Filtering disabled container container=traefik-htpc-ef31bfec0feff8ca5f464e3ec81c9677d1dec15679b769741f79f9a78eca613a providerName=docker
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/server/configurationwatcher.go:227 > Configuration received config={"http":{"routers":{"calibre-http":{"entryPoints":["http"],"rule":"Host(`calibre.docker.localhost`)","service":"calibre-http-service"},"calibreweb-http":{"entryPoints":["http"],"rule":"Host(`calibreweb.spindriftpages.net`)","service":"calibreweb-http-service"},"calibreweb-https":{"entryPoints":["https"],"rule":"Host(`xxxx.duckdns.org`)","service":"calibreweb-https-service"},"xxxx-http":{"entryPoints":["http"],"rule":"Host(`xxxx.docker.localhost`)","service":"xxxx-http-service"},"xxxx-http":{"entryPoints":["http"],"rule":"Host(`xxxx.docker.localhost`)","service":"xxxx-http-service"},"xxxx-http":{"entryPoints":["http"],"rule":"Host(`xxxx.docker.localhost`)","service":"xxxx-http-service"},"xxxx-http":{"entryPoints":["http"],"rule":"Host(`xxxx.docker.localhost`)","service":"xxxx-http-service"},"xxxx-http":{"entryPoints":["http"],"rule":"Host(`xxxx.docker.localhost`)","service":"xxxx-http-service"},"xxxx-http":{"entryPoints":["http"],"rule":"Host(`xxxx.docker.localhost`)","service":"xxxx-http-service"}},"services":{"calibre-http-service":{"loadBalancer":{"passHostHeader":true,"responseForwarding":{"flushInterval":"100ms"},"servers":[{"url":"http://172.25.0.4:7080"}]}},"calibreweb-http-service":{"loadBalancer":{"passHostHeader":true,"responseForwarding":{"flushInterval":"100ms"},"servers":[{"url":"http://172.25.0.7:8083"}]}},"calibreweb-https-service":{"loadBalancer":{"passHostHeader":true,"responseForwarding":{"flushInterval":"100ms"},"servers":[{"url":"http://172.25.0.7:8083"}]}},"xxxx-http-service":{"loadBalancer":{"passHostHeader":true,"responseForwarding":{"flushInterval":"100ms"},"servers":[{"url":"http://172.25.0.5:9696"}]}},"xxxx-http-service":{"loadBalancer":{"passHostHeader":true,"responseForwarding":{"flushInterval":"100ms"},"servers":[{"url":"http://172.25.0.5:8082"}]}},"xxxx-http-service":{"loadBalancer":{"passHostHeader":true,"responseForwarding":{"flushInterval":"100ms"},"servers":[{"url":"http://172.25.0.8:7878"}]}},"xxxx-http-service":{"loadBalancer":{"passHostHeader":true,"responseForwarding":{"flushInterval":"100ms"},"servers":[{"url":"http://172.25.0.6:8787"}]}},"xxxx-http-service":{"loadBalancer":{"passHostHeader":true,"responseForwarding":{"flushInterval":"100ms"},"servers":[{"url":"http://172.25.0.5:8080"}]}},"xxxx-http-service":{"loadBalancer":{"passHostHeader":true,"responseForwarding":{"flushInterval":"100ms"},"servers":[{"url":"http://172.25.0.9:8989"}]}}}},"tcp":{},"tls":{},"udp":{}} providerName=docker
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/tls/tlsmanager.go:321 > No default certificate, fallback to the internal generated certificate tlsStoreName=default
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/middlewares/stripprefix/strip_prefix.go:32 > Creating middleware entryPointName=traefik middlewareName=dashboard_stripprefix@internal middlewareType=StripPrefix routerName=dashboard@internal
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/middlewares/observability/middleware.go:33 > Adding tracing to middleware entryPointName=traefik middlewareName=dashboard_stripprefix@internal routerName=dashboard@internal
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/middlewares/redirect/redirect_regex.go:17 > Creating middleware entryPointName=traefik middlewareName=dashboard_redirect@internal middlewareType=RedirectRegex routerName=dashboard@internal
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/middlewares/redirect/redirect_regex.go:18 > Setting up redirection from ^(http:\/\/(\[[\w:.]+\]|[\w\._-]+)(:\d+)?)\/$ to ${1}/dashboard/ entryPointName=traefik middlewareName=dashboard_redirect@internal middlewareType=RedirectRegex routerName=dashboard@internal
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/middlewares/observability/middleware.go:33 > Adding tracing to middleware entryPointName=traefik middlewareName=dashboard_redirect@internal routerName=dashboard@internal
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/middlewares/recovery/recovery.go:22 > Creating middleware entryPointName=traefik middlewareName=traefik-internal-recovery middlewareType=Recovery
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/middlewares/redirect/redirect_scheme.go:29 > Creating middleware entryPointName=http middlewareName=redirect-http-to-https@internal middlewareType=RedirectScheme routerName=http-to-https@internal
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/middlewares/redirect/redirect_scheme.go:30 > Setting up redirection to https 443 entryPointName=http middlewareName=redirect-http-to-https@internal middlewareType=RedirectScheme routerName=http-to-https@internal
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/middlewares/recovery/recovery.go:22 > Creating middleware entryPointName=http middlewareName=traefik-internal-recovery middlewareType=Recovery
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/tls/tlsmanager.go:321 > No default certificate, fallback to the internal generated certificate tlsStoreName=default
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/server/service/service.go:259 > Creating load-balancer entryPointName=http routerName=calibreweb-http@docker serviceName=calibreweb-http-service@docker
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/server/service/service.go:301 > Creating server entryPointName=http routerName=calibreweb-http@docker serverName=62ab1ca73cfa1642 serviceName=calibreweb-http-service@docker target=http://172.25.0.7:8083
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/server/service/service.go:259 > Creating load-balancer entryPointName=http routerName=xxxx-http@docker serviceName=xxxx-http-service@docker
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/middlewares/redirect/redirect_scheme.go:29 > Creating middleware entryPointName=http middlewareName=redirect-http-to-https@internal middlewareType=RedirectScheme routerName=http-to-https@internal
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/middlewares/redirect/redirect_scheme.go:30 > Setting up redirection to https 443 entryPointName=http middlewareName=redirect-http-to-https@internal middlewareType=RedirectScheme routerName=http-to-https@internal
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/middlewares/recovery/recovery.go:22 > Creating middleware entryPointName=http middlewareName=traefik-internal-recovery middlewareType=Recovery
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/middlewares/stripprefix/strip_prefix.go:32 > Creating middleware entryPointName=traefik middlewareName=dashboard_stripprefix@internal middlewareType=StripPrefix routerName=dashboard@internal
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/middlewares/observability/middleware.go:33 > Adding tracing to middleware entryPointName=traefik middlewareName=dashboard_stripprefix@internal routerName=dashboard@internal
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/middlewares/redirect/redirect_regex.go:17 > Creating middleware entryPointName=traefik middlewareName=dashboard_redirect@internal middlewareType=RedirectRegex routerName=dashboard@internal
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/middlewares/redirect/redirect_regex.go:18 > Setting up redirection from ^(http:\/\/(\[[\w:.]+\]|[\w\._-]+)(:\d+)?)\/$ to ${1}/dashboard/ entryPointName=traefik middlewareName=dashboard_redirect@internal middlewareType=RedirectRegex routerName=dashboard@internal
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/middlewares/observability/middleware.go:33 > Adding tracing to middleware entryPointName=traefik middlewareName=dashboard_redirect@internal routerName=dashboard@internal
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/middlewares/recovery/recovery.go:22 > Creating middleware entryPointName=traefik middlewareName=traefik-internal-recovery middlewareType=Recovery
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/server/service/service.go:259 > Creating load-balancer entryPointName=https routerName=calibreweb-https@docker serviceName=calibreweb-https-service@docker
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/server/service/service.go:301 > Creating server entryPointName=https routerName=calibreweb-https@docker serverName=62ab1ca73cfa1642 serviceName=calibreweb-https-service@docker target=http://172.25.0.7:8083
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/middlewares/headers/headers.go:28 > Creating middleware entryPointName=https middlewareName=secureHeaders@file middlewareType=Headers routerName=calibreweb-https@docker
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/middlewares/headers/headers.go:42 > Setting up secureHeaders from {map[] map[] false [] [] [] [] [] 0 false [] [] map[] 31536000 true true true false false false false <nil> 0xc00225ea18 <nil> <nil> <nil>} entryPointName=https middlewareName=secureHeaders@file middlewareType=Headers routerName=calibreweb-https@docker
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/middlewares/observability/middleware.go:33 > Adding tracing to middleware entryPointName=https middlewareName=secureHeaders@file routerName=calibreweb-https@docker
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/middlewares/recovery/recovery.go:22 > Creating middleware entryPointName=https middlewareName=traefik-internal-recovery middlewareType=Recovery
2024-05-24 16:17:43 2024-05-24T23:17:43Z DBG github.com/traefik/traefik/v3/pkg/server/router/tcp/manager.go:237 > Adding route for xxxx.duckdns.org with TLS options default entryPointName=https
2024-05-24 16:17:43 2024-05-24T23:17:43Z ERR github.com/traefik/traefik/v3/cmd/traefik/traefik.go:355 > Router uses a non-existent certificate resolver certificateResolver=letsencrypt routerName=calibreweb-https@docker
Any help would be great! Thanks!