I have Traefik working on my local PC via docker compose with no issues, each of my containers is able to be reached by my custom DNS name <name>.l.mydomain.net
. However I just was notified that my LE certs are under the 30 day renewal, and when I attempted to renew them by recreating the image I see error messages that the renewal failed. I have tried with v2.8, v.2.9 and now with v3.0.
I don't see anything wrong with my config, and suspect the issue is with LEGO and how it is working with GoDaddy for sub-domains.
This is the error message:
[WARN] [*.l.mydomain.net] acme: cleaning up failed: godaddy: failed to get zone: could not find the start of authority for _acme-challenge.l.mydomain.net.: NOERROR lib=lego
Here is my Traefik config
version: "3.3"
services:
traefik:
image: traefik:v3.0
restart: unless-stopped
env_file:
- ./traefik/traefik.env # contains the GoDaddy API Key and Secret
command:
- --api.dashboard=true
- --api.insecure=true
- --providers.docker=true
- --providers.docker.exposedbydefault=true
- --providers.docker.defaultRule=Host(`{{if index .Labels "com.docker.compose.service" }}{{ index .Labels "com.docker.compose.service" }}.l.mydomain.net{{else}}{{ trimPrefix `/` .Name }}.l.mydomain.net{{end}}`)
- --entrypoints.webinsecure.address=:80
- --entrypoints.websecure.address=:443
- --entrypoints.traefik.address=:8080
- --providers.file.directory=/traefik/config
- --providers.file.watch=true
- --experimental.hub=true
- --hub.tls.insecure=true
- --metrics.prometheus.addrouterslabels=true
- --certificatesresolvers.wildcard-godaddy.acme.dnschallenge=true
- --certificatesResolvers.wildcard-godaddy.acme.dnsChallenge.provider=godaddy
- --certificatesResolvers.wildcard-godaddy.acme.dnsChallenge.delayBeforeCheck=0
- --certificatesresolvers.wildcard-godaddy.acme.email=${ACME_EMAIL}
- --certificatesresolvers.wildcard-godaddy.acme.storage=/traefik/certs/acme.json
- --log.level=DEBUG
#- --accessLog=true
#- --accessLog.filePath=/traefik/logs/access.log
#- --accessLog.bufferingSize=100
#- --accessLog.filters.statusCodes=204-299,400-499,400-499
ports:
- 80:80
- 443:443
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./traefik:/traefik
labels:
- traefik.enable=true
# HTTPS redirect
- traefik.http.routers.http-catchall.entrypoints=webinsecure
- traefik.http.routers.http-catchall.rule=HostRegexp(`{host:.+}`)
- traefik.http.routers.http-catchall.middlewares=redirect-to-https
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
# HTTP Router
- traefik.http.routers.traefik-secure.entrypoints=websecure
- traefik.http.routers.traefik-secure.rule=Host(`traefik.l.mydomain.net`)
- traefik.http.routers.traefik-secure.tls=true
- traefik.http.routers.traefik-secure.tls.certresolver=wildcard-godaddy
- traefik.http.routers.traefik-secure.tls.domains[0].main=*.l.mydomain.net
- traefik.http.routers.traefik-secure.tls.domains[0].sans=l.mydomain.net
- traefik.http.routers.traefik-secure.service=api@internal
networks:
- proxy
whoami:
image: traefik/whoami
restart: unless-stopped
labels:
- traefik.http.routers.httpbin.tls=true
- traefik.http.routers.httpbin.tls.certresolver=wildcard-godaddy
depends_on:
- traefik
networks:
- proxy
networks:
proxy:
external: true
Here is the Debug Log
2023-01-23T19:41:39Z DBG github.com/traefik/traefik/v2/pkg/tls/certificate.go:158 > Adding certificate for domain(s) *.l.mydomain.net,l.mydomain.net
2023-01-23T19:41:39Z DBG github.com/traefik/traefik/v2/pkg/server/router/tcp/manager.go:235 > Adding route for proxy.traefik with TLS options traefik-hub@hub entryPointName=traefikhub-api
2023-01-23T19:41:39Z DBG github.com/traefik/traefik/v2/pkg/server/router/tcp/manager.go:235 > Adding route for traefik.l.mydomain.net with TLS options default entryPointName=websecure
2023-01-23T19:41:39Z DBG github.com/traefik/traefik/v2/pkg/provider/acme/provider.go:847 > Looking for provided certificate(s) to validate ["*.l.mydomain.net" "l.mydomain.net"]... acmeCA=https://acme-v02.api.letsencrypt.org/directory providerName=wildcard-godaddy.acme
2023-01-23T19:41:39Z DBG github.com/traefik/traefik/v2/pkg/provider/acme/provider.go:891 > No ACME certificate generation required for domains acmeCA=https://acme-v02.api.letsencrypt.org/directory domains=["*.l.mydomain.net","l.mydomain.net"] providerName=wildcard-godaddy.acme
2023-01-23T19:41:39Z DBG github.com/traefik/traefik/v2/pkg/provider/acme/provider.go:294 > Using DNS Challenge provider: godaddy providerName=wildcard-godaddy.acme
2023-01-23T19:41:39Z INF github.com/traefik/traefik/v2/pkg/provider/acme/provider.go:820 > Renewing certificate from LE : {Main:l.mydomain.net SANs:[*.l.mydomain.net]} acmeCA=https://acme-v02.api.letsencrypt.org/directory providerName=wildcard-godaddy.acme
2023-01-23T19:41:39Z DBG github.com/go-acme/lego/v4@v4.9.1/log/logger.go:48 > [INFO] [l.mydomain.net] acme: Trying renewal with 429 hours remaining lib=lego
2023-01-23T19:41:39Z DBG github.com/go-acme/lego/v4@v4.9.1/log/logger.go:48 > [INFO] [l.mydomain.net, *.l.mydomain.net] acme: Obtaining bundled SAN certificate lib=lego
2023-01-23T19:41:39Z DBG github.com/traefik/traefik/v2/pkg/provider/docker/docker.go:287 > Provider event received {Status:start ID:c732e04b368a1c0c1a1963978c186e77d9e9a27a29caa6380563fc05f9f7e8e6 From:traefik/whoami Type:container Action:start Actor:{ID:c732e04b368a1c0c1a1963978c186e77d9e9a27a29caa6380563fc05f9f7e8e6 Attributes:map[com.docker.compose.config-hash:7169dae6c2d7aa67903f1adbe0070d537261cd708a21ab44ef09b2fbea56e78b com.docker.compose.container-number:1 com.docker.compose.depends_on:traefik:service_started com.docker.compose.image:sha256:420d3c2af3570ad1ced363bce5b284a4c662cf7ee178e261ae42b7d750d488a4 com.docker.compose.oneoff:False com.docker.compose.project:devtools com.docker.compose.project.config_files:/mnt/d/docker/devtools/docker-compose.yml com.docker.compose.project.working_dir:/mnt/d/docker/devtools com.docker.compose.service:whoami com.docker.compose.version:2.13.0 desktop.docker.io/wsl-distro:Ubuntu image:traefik/whoami name:devtools-whoami-1 org.opencontainers.image.created:2022-10-15T13:46:19Z org.opencontainers.image.description:Tiny Go webserver that prints OS information and HTTP request to output org.opencontainers.image.revision:e59736736851ca955cf8734fe4ea6d0c71ddbd62 org.opencontainers.image.source:https://github.com/traefik/whoami org.opencontainers.image.title:whoami org.opencontainers.image.version:1.8.7 traefik.http.routers.httpbin.tls:true traefik.http.routers.httpbin.tls.certresolver:wildcard-godaddy]} Scope:local Time:1674502899 TimeNano:1674502899376326156} providerName=docker
2023-01-23T19:41:39Z DBG github.com/go-acme/lego/v4@v4.9.1/log/logger.go:48 > [INFO] [*.l.mydomain.net] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz-v3/197646344047 lib=lego
2023-01-23T19:41:39Z DBG github.com/go-acme/lego/v4@v4.9.1/log/logger.go:48 > [INFO] [l.mydomain.net] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz-v3/197646344057 lib=lego
2023-01-23T19:41:39Z DBG github.com/go-acme/lego/v4@v4.9.1/log/logger.go:48 > [INFO] [*.l.mydomain.net] acme: use dns-01 solver lib=lego
2023-01-23T19:41:39Z DBG github.com/go-acme/lego/v4@v4.9.1/log/logger.go:48 > [INFO] [l.mydomain.net] acme: Could not find solver for: tls-alpn-01 lib=lego
2023-01-23T19:41:39Z DBG github.com/go-acme/lego/v4@v4.9.1/log/logger.go:48 > [INFO] [l.mydomain.net] acme: Could not find solver for: http-01 lib=lego
2023-01-23T19:41:39Z DBG github.com/go-acme/lego/v4@v4.9.1/log/logger.go:48 > [INFO] [l.mydomain.net] acme: use dns-01 solver lib=lego
2023-01-23T19:41:39Z DBG github.com/go-acme/lego/v4@v4.9.1/log/logger.go:48 > [INFO] [*.l.mydomain.net] acme: Preparing to solve DNS-01 lib=lego
2023-01-23T19:41:39Z DBG github.com/go-acme/lego/v4@v4.9.1/log/logger.go:48 > [INFO] [l.mydomain.net] acme: Preparing to solve DNS-01 lib=lego
2023-01-23T19:41:39Z DBG github.com/go-acme/lego/v4@v4.9.1/log/logger.go:48 > [INFO] [*.l.mydomain.net] acme: Cleaning DNS-01 challenge lib=lego
2023-01-23T19:41:39Z DBG github.com/go-acme/lego/v4@v4.9.1/log/logger.go:48 > [WARN] [*.l.mydomain.net] acme: cleaning up failed: godaddy: failed to get zone: could not find the start of authority for _acme-challenge.l.mydomain.net.: NOERROR lib=lego
2023-01-23T19:41:39Z DBG github.com/go-acme/lego/v4@v4.9.1/log/logger.go:48 > [INFO] [l.mydomain.net] acme: Cleaning DNS-01 challenge lib=lego
2023-01-23T19:41:39Z DBG github.com/go-acme/lego/v4@v4.9.1/log/logger.go:48 > [WARN] [l.mydomain.net] acme: cleaning up failed: godaddy: failed to get zone: could not find the start of authority for _acme-challenge.l.mydomain.net.: NOERROR lib=lego
2023-01-23T19:41:39Z DBG github.com/go-acme/lego/v4@v4.9.1/log/logger.go:48 > [INFO] Deactivating auth: https://acme-v02.api.letsencrypt.org/acme/authz-v3/197646344047 lib=lego
2023-01-23T19:41:40Z DBG github.com/go-acme/lego/v4@v4.9.1/log/logger.go:48 > [INFO] Deactivating auth: https://acme-v02.api.letsencrypt.org/acme/authz-v3/197646344057 lib=lego
2023-01-23T19:41:40Z ERR github.com/traefik/traefik/v2/pkg/provider/acme/provider.go:828 > Error renewing certificate from LE: {l.mydomain.net [*.l.mydomain.net]} error="error: one or more domains had a problem:\n[*.l.mydomain.net] [*.l.mydomain.net] acme: error presenting token: godaddy: failed to get zone: could not find the start of authority for _acme-challenge.l.mydomain.net.: NOERROR\n[l.mydomain.net] [l.mydomain.net] acme: error presenting token: godaddy: failed to get zone: could not find the start of authority for _acme-challenge.l.mydomain.net.: NOERROR\n" acmeCA=https://acme-v02.api.letsencrypt.org/directory providerName=wildcard-godaddy.acme
2023-01-23T19:41:41Z DBG github.com/traefik/traefik/v2/pkg/server/configurationwatcher.go:217 > Configuration received config={"http":{"middlewares":{"redirect-to-https":{"redirectScheme":{"scheme":"https"}}},"routers":{"http-catchall":{"entryPoints":["webinsecure"],"middlewares":["redirect-to-https"],"rule":"HostRegexp(`{host:.+}`)","service":"traefik-devtools"},"httpbin":{"rule":"Host(`whoami.l.mydomain.net`)","service":"whoami-devtools","tls":{"certResolver":"wildcard-godaddy"}},"traefik-secure":{"entryPoints":["websecure"],"rule":"Host(`traefik.l.mydomain.net`)","service":"api@internal","tls":{"certResolver":"wildcard-godaddy","domains":[{"main":"*.l.mydomain.net","sans":["l.mydomain.net"]}]}}},"services":{"traefik-devtools":{"loadBalancer":{"passHostHeader":true,"responseForwarding":{"flushInterval":"100ms"},"servers":[{"url":"http://172.18.0.2:80"}]}},"whoami-devtools":{"loadBalancer":{"passHostHeader":true,"responseForwarding":{"flushInterval":"100ms"},"servers":[{"url":"http://172.18.0.3:80"}]}}}},"tcp":{},"udp":{}} providerName=docker
2023-01-23T19:41:41Z DBG github.com/traefik/traefik/v2/pkg/server/aggregator.go:47 > No entryPoint defined for this router, using the default one(s) instead entryPointName=["webinsecure","websecure"] routerName=httpbin
2023-01-23T19:41:41Z DBG github.com/traefik/traefik/v2/pkg/tls/certificate.go:158 > Adding certificate for domain(s) *.l.mydomain.net,l.mydomain.net
2023-01-23T19:41:41Z DBG github.com/traefik/traefik/v2/pkg/tls/tlsmanager.go:294 > No default certificate, fallback to the internal generated certificate tlsStoreName=default
2023-01-23T19:41:41Z DBG github.com/traefik/traefik/v2/pkg/server/router/tcp/manager.go:235 > Adding route for proxy.traefik with TLS options traefik-hub@hub entryPointName=traefikhub-api
2023-01-23T19:41:41Z DBG github.com/traefik/traefik/v2/pkg/server/router/tcp/manager.go:235 > Adding route for whoami.l.mydomain.net with TLS options default entryPointName=webinsecure
2023-01-23T19:41:41Z DBG github.com/traefik/traefik/v2/pkg/server/router/tcp/manager.go:235 > Adding route for traefik.l.mydomain.net with TLS options default entryPointName=websecure
2023-01-23T19:41:41Z DBG github.com/traefik/traefik/v2/pkg/server/router/tcp/manager.go:235 > Adding route for whoami.l.mydomain.net with TLS options default entryPointName=websecure
2023-01-23T19:41:41Z DBG github.com/traefik/traefik/v2/pkg/provider/acme/provider.go:385 > Trying to challenge certificate for domain [whoami.l.mydomain.net] found in HostSNI rule acmeCA=https://acme-v02.api.letsencrypt.org/directory providerName=wildcard-godaddy.acme routerName=httpbin@docker rule=Host(`whoami.l.mydomain.net`)
2023-01-23T19:41:41Z DBG github.com/traefik/traefik/v2/pkg/provider/acme/provider.go:847 > Looking for provided certificate(s) to validate ["*.l.mydomain.net" "l.mydomain.net"]... acmeCA=https://acme-v02.api.letsencrypt.org/directory providerName=wildcard-godaddy.acme
2023-01-23T19:41:41Z DBG github.com/traefik/traefik/v2/pkg/provider/acme/provider.go:847 > Looking for provided certificate(s) to validate ["whoami.l.mydomain.net"]... acmeCA=https://acme-v02.api.letsencrypt.org/directory providerName=wildcard-godaddy.acme routerName=httpbin@docker rule=Host(`whoami.l.mydomain.net`)
2023-01-23T19:41:41Z DBG github.com/traefik/traefik/v2/pkg/provider/acme/provider.go:891 > No ACME certificate generation required for domains acmeCA=https://acme-v02.api.letsencrypt.org/directory domains=["*.l.mydomain.net","l.mydomain.net"] providerName=wildcard-godaddy.acme
2023-01-23T19:41:41Z DBG github.com/traefik/traefik/v2/pkg/provider/acme/provider.go:891 > No ACME certificate generation required for domains acmeCA=https://acme-v02.api.letsencrypt.org/directory domains=["whoami.l.mydomain.net"] providerName=wildcard-godaddy.acme routerName=httpbin@docker rule=Host(`whoami.l.mydomain.net`)
It's odd to me that the error message states NOERROR