Hi,
I've some issues with the renewal of my certificates, I probably have broken something because they were able to generate on the first place.
In my logs, for each domain, I see the following:
time="2024-03-31T07:48:45Z" level=debug msg="Creating middleware" routerName=ddnsupdater@docker middlewareName=pipelining middlewareType=Pipelining serviceName=ddnsupdater entryPointName=websecure
time="2024-03-31T07:48:45Z" level=debug msg="Creating load-balancer" entryPointName=websecure routerName=ddnsupdater@docker serviceName=ddnsupdater
time="2024-03-31T07:48:45Z" level=debug msg="Creating server 0 http://10.0.2.10:8000" serviceName=ddnsupdater serverName=0 entryPointName=websecure routerName=ddnsupdater@docker
time="2024-03-31T07:48:45Z" level=debug msg="child http://10.0.2.10:8000 now UP"
time="2024-03-31T07:48:45Z" level=debug msg="Propagating new UP status"
time="2024-03-31T07:48:45Z" level=debug msg="Added outgoing tracing middleware ddnsupdater" middlewareType=TracingForwarder entryPointName=websecure routerName=ddnsupdater@docker middlewareName=tracing
time="2024-03-31T07:48:45Z" level=debug msg="Creating middleware" middlewareType=Pipelining entryPointName=websecure routerName=traefik@docker serviceName=traefik middlewareName=pipelining
time="2024-03-31T07:48:45Z" level=debug msg="Creating load-balancer" routerName=traefik@docker serviceName=traefik entryPointName=websecure
time="2024-03-31T07:48:45Z" level=debug msg="Creating server 0 http://10.0.2.30:8080" routerName=traefik@docker serviceName=traefik serverName=0 entryPointName=websecure
time="2024-03-31T07:48:45Z" level=debug msg="Adding route for ddns.mydomain.com with TLS options default" entryPointName=websecure
time="2024-03-31T07:48:45Z" level=debug msg="Trying to challenge certificate for domain [ddns.mydomain.com] found in HostSNI rule" rule="Host(`ddns.mydomain.com`)" providerName=myresolver.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory" routerName=ddnsupdater@docker
time="2024-03-31T07:48:45Z" level=debug msg="Looking for provided certificate(s) to validate [\"ddns.mydomain.com\"]..." rule="Host(`ddns.mydomain.com`)" providerName=myresolver.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory" routerName=ddnsupdater@docker
time="2024-03-31T07:48:45Z" level=debug msg="No ACME certificate generation required for domains [\"ddns.mydomain.com\"]." providerName=myresolver.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory" routerName=ddnsupdater@docker rule="Host(`ddns.mydomain.com`)"
time="2024-03-31T07:48:54Z" level=debug msg="legolog: [INFO] [ddns.mydomain.com] acme: Waiting for DNS record propagation."
time="2024-03-31T07:49:06Z" level=debug msg="legolog: [INFO] [ddns.mydomain.com] acme: Waiting for DNS record propagation."
time="2024-03-31T07:49:18Z" level=debug msg="legolog: [INFO] [ddns.mydomain.com] acme: Waiting for DNS record propagation."
time="2024-03-31T07:49:30Z" level=debug msg="legolog: [INFO] [ddns.mydomain.com] acme: Waiting for DNS record propagation."
time="2024-03-31T07:49:42Z" level=debug msg="legolog: [INFO] [ddns.mydomain.com] acme: Waiting for DNS record propagation."
time="2024-03-31T07:49:44Z" level=debug msg="legolog: [INFO] [ddns.mydomain.com] acme: Cleaning DNS-01 challenge"
time="2024-03-31T07:49:44Z" level=debug msg="legolog: [INFO] Found CNAME entry for \"_acme-challenge.ddns.mydomain.com.\": \"ho.mydomain.com.\""
time="2024-03-31T07:49:44Z" level=debug msg="legolog: [INFO] Deactivating auth: https://acme-v02.api.letsencrypt.org/acme/authz-v3/332803205747"
time="2024-03-31T07:49:45Z" level=error msg="Unable to obtain ACME certificate for domains \"ddns.mydomain.com\": unable to generate a certificate for the domains [ddns.mydomain.com]: error: one or more domains had a problem:\n[ddns.mydomain.com] propagation: time limit exceeded: last error: read udp 172.18.x.y:35158->213.251.x.y:53: i/o timeout\n" providerName=myresolver.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory" routerName=ddnsupdater@docker rule="Host(`ddns.mydomain.com`)"
I'm really not understanding what could prevent my DNS challenge.
Basically, I've a DDNS subdomain(ho.mydomain.com) in the logs above, which has currently my home address, and then I just have a CNAME that points *.mydomain.com to ho.mydomain.com.
I must say that if I navigate to ddns.mydomain.com, I've access to it(obviously, with an invalid certificate error), so the redirection should be working?
Here is my config:
version: "3.9"
services:
traefik:
image: "traefik:latest"
container_name: "traefik"
command:
- "--log.level=DEBUG"
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.dnschallenge=true"
- "--certificatesresolvers.myresolver.acme.dnschallenge.provider=ovh"
- "--certificatesresolvers.myresolver.acme.email=AAAA@BBBB.com"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
- "--providers.docker.network=home-stack_default"
ports:
- "80:80"
- "8080:8080"
- "443:443"
environment:
- "OVH_ENDPOINT=ovh-eu"
- "OVH_APPLICATION_KEY=AAAAAAAAAAAA"
- "OVH_APPLICATION_SECRET=BBBBBBBBBBBBBBBBBBBBBB"
- "OVH_CONSUMER_KEY=CCCCCCCCCCCCCCCCCCC"
volumes:
- config-letsencrypt:/letsencrypt
- "/var/run/docker.sock:/var/run/docker.sock:ro"
restart: always
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.rule=Host(`traefik.mydomain.com`)"
- "traefik.http.routers.traefik.entrypoints=websecure"
- "traefik.http.routers.traefik.tls.certresolver=myresolver"
- "traefik.http.services.traefik.loadbalancer.server.port=8080"
- "traefik.http.middlewares.force-secure.redirectscheme.scheme=https"
- "traefik.http.middlewares.force-secure.redirectscheme.permanent=true"
- traefik.http.routers.http-catchall.rule=HostRegexp(`{any:.+}`)
- traefik.http.routers.http-catchall.entrypoints=web
- traefik.http.routers.http-catchall.middlewares=force-secure
ddns-updater:
image: qmcgaw/ddns-updater
container_name: ddnsupdater
volumes:
- config-ddns:/updater/data
ports:
- 8007:8000/tcp
environment:
- PERIOD=5m
- CONFIG=
- UPDATE_COOLDOWN_PERIOD=5m
- PUBLICIP_FETCHERS=all
- PUBLICIP_HTTP_PROVIDERS=all
- PUBLICIPV4_HTTP_PROVIDERS=all
- PUBLICIPV6_HTTP_PROVIDERS=all
- PUBLICIP_DNS_PROVIDERS=all
- PUBLICIP_DNS_TIMEOUT=3s
- HTTP_TIMEOUT=10s
# Web UI
- LISTENING_PORT=8007
- ROOT_URL=/
# Backup
- BACKUP_PERIOD=0 # 0 to disable
- BACKUP_DIRECTORY=/updater/data
# Other
- LOG_LEVEL=info
- LOG_CALLER=hidden
- SHOUTRRR_ADDRESSES=
restart: always
healthcheck:
disable: true
labels:
- "traefik.enable=true"
- "traefik.http.routers.ddnsupdater.rule=Host(`ddns.mydomain.com`)"
- "traefik.http.routers.ddnsupdater.entrypoints=websecure"
- "traefik.http.routers.ddnsupdater.tls.certresolver=myresolver"
- "traefik.http.services.ddnsupdater.loadbalancer.server.port=8000"
volumes:
config-ddns:
driver_opts:
type: "nfs"
o: "addr=192.168.0.60,nolock,rw,soft"
device: ":/volume2/apps/config/ddns"
config-letsencrypt:
driver_opts:
type: "nfs"
o: "addr=192.168.0.60,nolock,rw,soft"
device: ":/volume2/apps/config/letsencrypt"
Any idea what I could have messed up?