Pulling my hairs for a day now and not getting around it.
What I'm trying to do is to use 3 certresolvers;
- http
- transip
- cloudflare
I configured them in my traefik.yml;
api:
dashboard: true
insecure: true
global:
checkNewVersion: true
serversTransport:
insecureSkipVerify: true
entryPoints:
http:
address: ":80"
https:
address: ":443"
log:
level: DEBUG
accessLog:
filePath: "/traefik/data/access.log"
bufferingSize: 100
providers:
docker:
endpoint: "unix:///var/run/docker.sock"
exposedByDefault: false
file:
directory: /traefik/data
watch: true
certificatesResolvers:
http:
acme:
caServer: "https://acme-v02.api.letsencrypt.org/directory"
email: "mo@fn.nl"
storage: "/traefik/data/acme.json"
httpChallenge:
entryPoint: http
transip:
acme:
caServer: "https://acme-v02.api.letsencrypt.org/directory"
email: "mo@f.nl"
storage: "/traefik/data/acmetransip.json"
DNSChallenge:
delayBeforeCheck: 0
provider: transip
cloudflare:
acme:
caServer: "https://acme-v02.api.letsencrypt.org/directory"
email: "mo@fn.nl"
storage: "/traefik/data/acmecloudflare.json"
DNSChallenge:
delayBeforeCheck: 0
provider: cloudflare
Then I use Docker and dynamic_config.yaml to connect it al together;
Here's a snippet of my dynamic_config routers;
http:
routers:
router-fn-nl:
entryPoints:
- https
middlewares:
service: service-fn-nl
rule: Host(`www.fn.nl`)
tls:
certResolver: transip
router-ln-nl:
entryPoints:
- https
middlewares:
service: service-ln-nl
rule: Host(`www.ln.nl`)
tls:
certResolver: transip
and one docker compose container config with labels;
homeassistant:
container_name: homeassistant
image: homeassistant/home-assistant:0.110.3
environment:
- PUID=1001
- PGID=1001
ports:
- 8123:8123
networks:
- web
volumes:
- ${DOCKERDIR}/homeassistant:/config
- /etc/localtime:/etc/localtime:ro
- ${DOCKERDIR}/shared/:/shared/
labels:
- "traefik.enable=true"
- "traefik.http.routers.homeassistant.entrypoints=http"
- "traefik.http.routers.homeassistant.rule=Host(`hass-${DOCKER_SUB_ADD}.${DOMAINNAME}`)"
- "traefik.http.middlewares.homeassistant-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.homeassistant.middlewares=homeassistant-https-redirect"
- "traefik.http.routers.homeassistant-secure.entrypoints=https"
- "traefik.http.routers.homeasistant-secure.rule=Host(`hass-${DOCKER_SUB_ADD}.${DOMAINNAME}`)"
- "traefik.http.routers.homeassistant-secure.tls=true"
- "traefik.http.routers.homeassistant-secure.tls.certresolver=cloudflare"
- "traefik.http.routers.homeassistant-secure.tls.domains[0].main= {{ DOMAINNAME }}"
- "traefik.http.routers.homeassistant-secure.tls.domains[0].sans= *.{{ DOMAINNAME }}"
- "traefik.http.routers.homeassistant-secure.service=homeassistant"
- "traefik.http.services.homeassistant.loadbalancer.server.port=8123"
- "traefik.docker.network=web"
Above configs result in all and the same errors;
time="2020-05-29T10:02:50+02:00" level=error msg="the router router-ln-nl@file uses a non-existent resolver: transip"
time="2020-05-29T10:02:50+02:00" level=error msg="the router homeassistant-secure@docker uses a non-existent resolver: cloudflare"
time="2020-05-29T10:02:50+02:00" level=error msg="the router router-fn-nl@file uses a non-existent resolver: transip"
time="2020-05-29T10:02:50+02:00" level=error msg="the router traefik-docker-secure@docker uses a non-existent resolver: cloudflare"
Here's my Traefik Docker config;
traefik:
image: traefik:v2.2.1
container_name: traefik
restart: always
security_opt:
- no-new-privileges:true
networks:
- web
environment:
- TRANSIP_ACCOUNT_NAME=m
- TRANSIP_PRIVATE_KEY_PATH=/traefik/data/.secrets/private.key
- CF_DNS_API_TOKEN=jfriiiA2LL6kpUccckg
- CF_ZONE_API_TOKEN=5xx073xx9b55
- CF_API_KEY=1151a4xx80yyd4
ports:
- 80:80
- 443:443
- 8080:8080
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- /opt/docker/traefik/:/etc/traefik
- /opt/docker/traefik/:/traefik
# - /opt/docker/traefik/data/:/traefik/data
# - /opt/docker/traefik/data/traefik.yml:/traefik.yml:ro
# - /opt/docker/traefik/data/acme.json:/traefik/acme.json
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik-docker.entrypoints=http"
- "traefik.http.routers.traefik-docker.rule=Host(`traefik-${DOCKER_SUB_ADD}.${DOMAINNAME}`)"
- "traefik.http.middlewares.traefik-docker-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.traefik-docker.middlewares=traefik-docker-https-redirect"
- "traefik.http.routers.traefik-docker-secure.entrypoints=https"
- "traefik.http.routers.traefik-docker-secure.rule=Host(`traefik-${DOCKER_SUB_ADD}.${DOMAINNAME}`)"
- "traefik.http.routers.traefik-docker-secure.tls=true"
- "traefik.http.routers.traefik-docker-secure.tls.certresolver=cloudflare"
- "traefik.http.middlewares.traefik-auth.basicauth.users=xx:XX"
- "traefik.http.routers.traefik-docker.middlewares=traefik-auth"
- "traefik.http.routers.traefik-docker-secure.service=traefik-docker"
- "traefik.http.services.traefik-docker.loadbalancer.server.port=8080"
- "traefik.docker.network=web"
I'm using the most recent 2.2.1 version
Trying so much things that i'm totally lost...
Hopefully somebody can help me