Global HTTP->HTTPS redirect on Docker, TLS config not picked up

Okay, I'm at my wits' end here. I've read the various forum threads regarding similar topics, I also copied the (well hidden) example from the documentation line by line and it still doesn't work. Maybe someone can tell me, what I'm missing.

  • I'm using Traefik 2.1.2
  • My services are all running in Docker
  • I have a working self-signed wildcard certificate for the domains home.lan and *.home.lan
  • I want all my services to be (only) available via HTTPS
  • All connections to port 80 should be globally redirected to 443.

This is my configuration:

# Static configuration:
# traefik.yml
log:
  level: DEBUG

api:
  dashboard: true
  insecure: true

entryPoints:
  web:
    address: ":80"

  web-secure:
    address: ":443"

global:
  sendAnonymousUsage: false

metrics:
  prometheus: {}

providers:
  docker:
    network: mynetwork
    defaultRule: "Host(`{{ normalize .Name }}.home.lan`)"
  file:
    filename: "/etc/traefik/tls.yml"
    watch: true
# Dynamic configuration:
# tls.yml
http:
  routers:
    http-catchall:
      entryPoints:
        - web
      middlewares:
        - redirect-to-https
      rule: "HostRegexp(`{any:.+}`)"
      service: noop

  services:
    # noop service, the URL will be never called
    noop:
      loadBalancer:
        servers:
          - url: "http://127.0.0.1"

  middlewares:
    redirect-to-https:
      redirectScheme:
        scheme: https
        permanent: true

tls:
  options:
    default:
      minVersion: VersionTLS12

  certificates:
    - certFile: "/etc/traefik/cert.pem"
      keyFile: "/etc/traefik/key.pem"

  stores:
    default:
      defaultCertificate:
        certFile: "/etc/traefik/cert.pem"
        keyFile: "/etc/traefik/key.pem"

All services are successfully detected by Traefik, but there's no TLS info showing in the dashboard:

Curling the domain, the catchall TLS redirect is not applied (using GET instead of HEAD returns the proper HTML body):

curl -I http://grafana.home.lan
HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Type: text/html; charset=UTF-8
Date: Wed, 22 Jan 2020 08:45:22 GMT
Expires: -1
Pragma: no-cache
X-Frame-Options: deny

However, trying the same domain with HTTPS returns a 404:

curl -i -k https://grafana.home.lan
HTTP/2 404
content-type: text/plain; charset=utf-8
x-content-type-options: nosniff
content-length: 19
date: Wed, 22 Jan 2020 08:25:24 GMT

404 page not found

Looking into Traefik's log files, I can see:

  • It's loading and parsing the configuration correctly
  • It adds the TLS wildcard certificate for the domain
  • It sets up the HTTPS redirect
time="2020-01-22T08:22:35Z" level=info msg="Configuration loaded from file: /etc/traefik/traefik.yml"
time="2020-01-22T08:22:35Z" level=info msg="Traefik version 2.1.2 built on 2020-01-07T18:23:57Z"
time="2020-01-22T08:22:35Z" level=debug msg="Static configuration loaded {\"global\":{\"checkNewVersion\":true},\"serversTransport\":{\"maxIdleConnsPerHost\":200},\"entryPoints\":{\"traefik\":{\"address\":\":8080\",\"transport\":{\"lifeCycle\":{\"graceTimeOut\":10000000000},\"respondingTimeouts\":{\"idleTimeout\":180000000000}},\"forwardedHeaders\":{}},\"web\":{\"address\":\":80\",\"transport\":{\"lifeCycle\":{\"graceTimeOut\":10000000000},\"respondingTimeouts\":{\"idleTimeout\":180000000000}},\"forwardedHeaders\":{}},\"web-secure\":{\"address\":\":443\",\"transport\":{\"lifeCycle\":{\"graceTimeOut\":10000000000},\"respondingTimeouts\":{\"idleTimeout\":180000000000}},\"forwardedHeaders\":{}}},\"providers\":{\"providersThrottleDuration\":2000000000,\"docker\":{\"watch\":true,\"endpoint\":\"unix:///var/run/docker.sock\",\"defaultRule\":\"Host(`{{ normalize .Name }}.home.lan`)\",\"exposedByDefault\":true,\"network\":\"hestia\",\"swarmModeRefreshSeconds\":15000000000},\"file\":{\"watch\":true,\"filename\":\"/etc/traefik/tls.yml\"}},\"api\":{\"insecure\":true,\"dashboard\":true},\"metrics\":{\"prometheus\":{\"buckets\":[0.1,0.3,1.2,5],\"addEntryPointsLabels\":true,\"addServicesLabels\":true,\"entryPoint\":\"traefik\"}},\"log\":{\"level\":\"DEBUG\",\"format\":\"common\"}}"
[…]
time="2020-01-22T08:22:35Z" level=debug msg="Start TCP Server" entryPointName=web-secure
time="2020-01-22T08:22:35Z" level=debug msg="Start TCP Server" entryPointName=traefik
time="2020-01-22T08:22:35Z" level=info msg="Starting provider *file.Provider {\"watch\":true,\"filename\":\"/etc/traefik/tls.yml\"}"
time="2020-01-22T08:22:35Z" level=debug msg="Start TCP Server" entryPointName=web
[…]
time="2020-01-22T08:22:35Z" level=info msg="Starting provider *docker.Provider {\"watch\":true,\"endpoint\":\"unix:///var/run/docker.sock\",\"defaultRule\":\"Host(`{{ normalize .Name }}.home.lan`)\",\"exposedByDefault\":true,\"network\":\"hestia\",\"swarmModeRefreshSeconds\":15000000000}"
[…]
time="2020-01-22T08:22:35Z" level=debug msg="Adding certificate for domain(s) home.lan,*.home.lan"
time="2020-01-22T08:22:35Z" level=debug msg="Creating middleware" middlewareType=Pipelining entryPointName=web routerName=http-catchall@file serviceName=noop middlewareName=pipelining
time="2020-01-22T08:22:35Z" level=debug msg="Creating middleware" middlewareName=metrics-service middlewareType=Metrics entryPointName=web routerName=http-catchall@file serviceName=noop
time="2020-01-22T08:22:35Z" level=debug msg="Creating load-balancer" entryPointName=web routerName=http-catchall@file serviceName=noop
time="2020-01-22T08:22:35Z" level=debug msg="Creating server 0 http://127.0.0.1" entryPointName=web routerName=http-catchall@file serviceName=noop serverName=0
time="2020-01-22T08:22:35Z" level=debug msg="Added outgoing tracing middleware noop" middlewareName=tracing middlewareType=TracingForwarder routerName=http-catchall@file entryPointName=web
time="2020-01-22T08:22:35Z" level=debug msg="Creating middleware" entryPointName=web routerName=http-catchall@file middlewareType=RedirectScheme middlewareName=redirect-to-https@file
time="2020-01-22T08:22:35Z" level=debug msg="Setting up redirection to https " middlewareType=RedirectScheme middlewareName=redirect-to-https@file entryPointName=web routerName=http-catchall@file
time="2020-01-22T08:22:35Z" level=debug msg="Adding tracing to middleware" entryPointName=web routerName=http-catchall@file middlewareName=redirect-to-https@file
time="2020-01-22T08:22:35Z" level=debug msg="Creating middleware" entryPointName=web middlewareName=traefik-internal-recovery middlewareType=Recovery
time="2020-01-22T08:22:35Z" level=debug msg="Creating middleware" entryPointName=traefik middlewareName=metrics-entrypoint middlewareType=Metrics
time="2020-01-22T08:22:35Z" level=debug msg="Creating middleware" entryPointName=web middlewareName=metrics-entrypoint middlewareType=Metrics
time="2020-01-22T08:22:35Z" level=debug msg="Creating middleware" entryPointName=web-secure middlewareName=metrics-entrypoint middlewareType=Metrics
time="2020-01-22T08:22:35Z" level=debug msg="Creating middleware" entryPointName=traefik middlewareName=metrics-entrypoint middlewareType=Metrics
time="2020-01-22T08:22:35Z" level=debug msg="Creating middleware" middlewareType=Metrics entryPointName=web middlewareName=metrics-entrypoint
time="2020-01-22T08:22:35Z" level=debug msg="Creating middleware" middlewareName=metrics-entrypoint middlewareType=Metrics entryPointName=web-secure
time="2020-01-22T08:22:35Z" level=debug msg="Adding certificate for domain(s) home.lan,*.home.lan"
time="2020-01-22T08:22:35Z" level=debug msg="Creating middleware" middlewareType=Pipelining entryPointName=web routerName=http-catchall@file serviceName=noop middlewareName=pipelining
time="2020-01-22T08:22:35Z" level=debug msg="Creating middleware" routerName=http-catchall@file serviceName=noop middlewareType=Metrics middlewareName=metrics-service entryPointName=web
time="2020-01-22T08:22:35Z" level=debug msg="Creating load-balancer" serviceName=noop entryPointName=web routerName=http-catchall@file
time="2020-01-22T08:22:35Z" level=debug msg="Creating server 0 http://127.0.0.1" entryPointName=web routerName=http-catchall@file serviceName=noop serverName=0
time="2020-01-22T08:22:35Z" level=debug msg="Added outgoing tracing middleware noop" entryPointName=web middlewareName=tracing middlewareType=TracingForwarder routerName=http-catchall@file
time="2020-01-22T08:22:35Z" level=debug msg="Creating middleware" entryPointName=web middlewareName=redirect-to-https@file middlewareType=RedirectScheme routerName=http-catchall@file
time="2020-01-22T08:22:35Z" level=debug msg="Setting up redirection to https " entryPointName=web middlewareName=redirect-to-https@file middlewareType=RedirectScheme routerName=http-catchall@file
time="2020-01-22T08:22:35Z" level=debug msg="Adding tracing to middleware" entryPointName=web routerName=http-catchall@file middlewareName=redirect-to-https@file
time="2020-01-22T08:22:35Z" level=debug msg="Creating middleware" middlewareType=Recovery entryPointName=web middlewareName=traefik-internal-recovery
time="2020-01-22T08:22:35Z" level=debug msg="Added outgoing tracing middleware prometheus@internal" middlewareName=tracing middlewareType=TracingForwarder entryPointName=traefik routerName=prometheus@internal
time="2020-01-22T08:22:35Z" level=debug msg="Added outgoing tracing middleware api@internal" entryPointName=traefik routerName=api@internal middlewareName=tracing middlewareType=TracingForwarder
time="2020-01-22T08:22:35Z" level=debug msg="Added outgoing tracing middleware dashboard@internal" middlewareType=TracingForwarder entryPointName=traefik routerName=dashboard@internal middlewareName=tracing
time="2020-01-22T08:22:35Z" level=debug msg="Creating middleware" middlewareName=dashboard_stripprefix@internal middlewareType=StripPrefix entryPointName=traefik routerName=dashboard@internal
time="2020-01-22T08:22:35Z" level=debug msg="Adding tracing to middleware" entryPointName=traefik routerName=dashboard@internal middlewareName=dashboard_stripprefix@internal
time="2020-01-22T08:22:35Z" level=debug msg="Creating middleware" middlewareType=RedirectRegex entryPointName=traefik routerName=dashboard@internal middlewareName=dashboard_redirect@internal
time="2020-01-22T08:22:35Z" level=debug msg="Setting up redirection from ^(http:\\/\\/[^:\\/]+(:\\d+)?)\\/$ to ${1}/dashboard/" middlewareName=dashboard_redirect@internal middlewareType=RedirectRegex entryPointName=traefik routerName=dashboard@internal
time="2020-01-22T08:22:35Z" level=debug msg="Adding tracing to middleware" entryPointName=traefik routerName=dashboard@internal middlewareName=dashboard_redirect@internal
time="2020-01-22T08:22:35Z" level=debug msg="Creating middleware" middlewareName=traefik-internal-recovery middlewareType=Recovery entryPointName=traefik
time="2020-01-22T08:22:35Z" level=debug msg="Creating middleware" entryPointName=traefik middlewareName=metrics-entrypoint middlewareType=Metrics
time="2020-01-22T08:22:35Z" level=debug msg="Creating middleware" entryPointName=web middlewareName=metrics-entrypoint middlewareType=Metrics
time="2020-01-22T08:22:35Z" level=debug msg="Creating middleware" entryPointName=web-secure middlewareName=metrics-entrypoint middlewareType=Metrics
time="2020-01-22T08:22:35Z" level=debug msg="Creating middleware" entryPointName=traefik middlewareName=metrics-entrypoint middlewareType=Metrics
time="2020-01-22T08:22:35Z" level=debug msg="Creating middleware" entryPointName=web middlewareType=Metrics middlewareName=metrics-entrypoint
time="2020-01-22T08:22:35Z" level=debug msg="Creating middleware" middlewareName=metrics-entrypoint middlewareType=Metrics entryPointName=web-secure
time="2020-01-22T08:22:35Z" level=debug msg="Provider connection established with docker 19.03.5-ce (API 1.40)" providerName=docker
time="2020-01-22T08:22:35Z" level=debug msg="Filtering disabled container" container=fritzbox-exporter-d2b0107593bd991f0c7e20864d2da9233cabc4c4caac0c3e5f15a321b8d49d14 providerName=docker
time="2020-01-22T08:22:35Z" level=debug msg="Filtering disabled container" container=mongodb-5066ca9745ac9a24cd97a276f16faa2190ffb91fe82a2a1f63643af36bf6f09c providerName=docker
time="2020-01-22T08:22:35Z" level=debug msg="Filtering disabled container" providerName=docker container=node-exporter-377f104319f66b7a29dd7406a27fa3307d4ec1ce094a161ea118b906fa8f6023
time="2020-01-22T08:22:35Z" level=debug msg="Filtering disabled container" providerName=docker container=coredns-c52182d89da3646d1e4cc824080ab0f394d9459a5d0b35b28e1d11ea629aed64
time="2020-01-22T08:22:35Z" level=debug msg="Configuration received from provider docker: […]" providerName=docker
time="2020-01-22T08:22:35Z" level=debug msg="Adding certificate for domain(s) home.lan,*.home.lan"
time="2020-01-22T08:22:35Z" level=debug msg="No entryPoint defined for this router, using the default one(s) instead: [traefik web web-secure]" routerName=grafana@docker
[…]
time="2020-01-22T08:22:42Z" level=debug msg="vulcand/oxy/roundrobin/rr: begin ServeHttp on request" Request="{\"Method\":\"HEAD\",\"URL\":{\"Scheme\":\"\",\"Opaque\":\"\",\"User\":null,\"Host\":\"\",\"Path\":\"/\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\"},\"Proto\":\"HTTP/1.1\",\"ProtoMajor\":1,\"ProtoMinor\":1,\"Header\":{\"Accept\":[\"*/*\"],\"User-Agent\":[\"curl/7.54.0\"],\"X-Forwarded-Host\":[\"grafana.home.lan\"],\"X-Forwarded-Port\":[\"80\"],\"X-Forwarded-Proto\":[\"http\"],\"X-Forwarded-Server\":[\"db94d5995dc5\"],\"X-Real-Ip\":[\"192.168.178.20\"]},\"ContentLength\":0,\"TransferEncoding\":null,\"Host\":\"grafana.home.lan\",\"Form\":null,\"PostForm\":null,\"MultipartForm\":null,\"Trailer\":null,\"RemoteAddr\":\"192.168.178.20:51325\",\"RequestURI\":\"/\",\"TLS\":null}"
time="2020-01-22T08:22:42Z" level=debug msg="vulcand/oxy/roundrobin/rr: Forwarding this request to URL" ForwardURL="http://172.18.0.8:3000" Request="{\"Method\":\"HEAD\",\"URL\":{\"Scheme\":\"\",\"Opaque\":\"\",\"User\":null,\"Host\":\"\",\"Path\":\"/\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\"},\"Proto\":\"HTTP/1.1\",\"ProtoMajor\":1,\"ProtoMinor\":1,\"Header\":{\"Accept\":[\"*/*\"],\"User-Agent\":[\"curl/7.54.0\"],\"X-Forwarded-Host\":[\"grafana.home.lan\"],\"X-Forwarded-Port\":[\"80\"],\"X-Forwarded-Proto\":[\"http\"],\"X-Forwarded-Server\":[\"db94d5995dc5\"],\"X-Real-Ip\":[\"192.168.178.20\"]},\"ContentLength\":0,\"TransferEncoding\":null,\"Host\":\"grafana.home.lan\",\"Form\":null,\"PostForm\":null,\"MultipartForm\":null,\"Trailer\":null,\"RemoteAddr\":\"192.168.178.20:51325\",\"RequestURI\":\"/\",\"TLS\":null}"
time="2020-01-22T08:22:42Z" level=debug msg="vulcand/oxy/roundrobin/rr: completed ServeHttp on request" Request="{\"Method\":\"HEAD\",\"URL\":{\"Scheme\":\"\",\"Opaque\":\"\",\"User\":null,\"Host\":\"\",\"Path\":\"/\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\"},\"Proto\":\"HTTP/1.1\",\"ProtoMajor\":1,\"ProtoMinor\":1,\"Header\":{\"Accept\":[\"*/*\"],\"User-Agent\":[\"curl/7.54.0\"],\"X-Forwarded-Host\":[\"grafana.home.lan\"],\"X-Forwarded-Port\":[\"80\"],\"X-Forwarded-Proto\":[\"http\"],\"X-Forwarded-Server\":[\"db94d5995dc5\"],\"X-Real-Ip\":[\"192.168.178.20\"]},\"ContentLength\":0,\"TransferEncoding\":null,\"Host\":\"grafana.home.lan\",\"Form\":null,\"PostForm\":null,\"MultipartForm\":null,\"Trailer\":null,\"RemoteAddr\":\"192.168.178.20:51325\",\"RequestURI\":\"/\",\"TLS\":null}"
time="2020-01-22T08:45:13Z" level=debug msg="vulcand/oxy/roundrobin/rr: begin ServeHttp on request" Request="{\"Method\":\"GET\",\"URL\":{\"Scheme\":\"\",\"Opaque\":\"\",\"User\":null,\"Host\":\"\",\"Path\":\"/\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\"},\"Proto\":\"HTTP/1.1\",\"ProtoMajor\":1,\"ProtoMinor\":1,\"Header\":{\"Accept\":[\"*/*\"],\"User-Agent\":[\"curl/7.54.0\"],\"X-Forwarded-Host\":[\"grafana.home.lan\"],\"X-Forwarded-Port\":[\"80\"],\"X-Forwarded-Proto\":[\"http\"],\"X-Forwarded-Server\":[\"db94d5995dc5\"],\"X-Real-Ip\":[\"192.168.178.20\"]},\"ContentLength\":0,\"TransferEncoding\":null,\"Host\":\"grafana.home.lan\",\"Form\":null,\"PostForm\":null,\"MultipartForm\":null,\"Trailer\":null,\"RemoteAddr\":\"192.168.178.20:56791\",\"RequestURI\":\"/\",\"TLS\":null}"
time="2020-01-22T08:45:13Z" level=debug msg="vulcand/oxy/roundrobin/rr: Forwarding this request to URL" Request="{\"Method\":\"GET\",\"URL\":{\"Scheme\":\"\",\"Opaque\":\"\",\"User\":null,\"Host\":\"\",\"Path\":\"/\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\"},\"Proto\":\"HTTP/1.1\",\"ProtoMajor\":1,\"ProtoMinor\":1,\"Header\":{\"Accept\":[\"*/*\"],\"User-Agent\":[\"curl/7.54.0\"],\"X-Forwarded-Host\":[\"grafana.home.lan\"],\"X-Forwarded-Port\":[\"80\"],\"X-Forwarded-Proto\":[\"http\"],\"X-Forwarded-Server\":[\"db94d5995dc5\"],\"X-Real-Ip\":[\"192.168.178.20\"]},\"ContentLength\":0,\"TransferEncoding\":null,\"Host\":\"grafana.home.lan\",\"Form\":null,\"PostForm\":null,\"MultipartForm\":null,\"Trailer\":null,\"RemoteAddr\":\"192.168.178.20:56791\",\"RequestURI\":\"/\",\"TLS\":null}" ForwardURL="http://172.18.0.8:3000"
time="2020-01-22T08:45:13Z" level=debug msg="vulcand/oxy/roundrobin/rr: completed ServeHttp on request" Request="{\"Method\":\"GET\",\"URL\":{\"Scheme\":\"\",\"Opaque\":\"\",\"User\":null,\"Host\":\"\",\"Path\":\"/\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\"},\"Proto\":\"HTTP/1.1\",\"ProtoMajor\":1,\"ProtoMinor\":1,\"Header\":{\"Accept\":[\"*/*\"],\"User-Agent\":[\"curl/7.54.0\"],\"X-Forwarded-Host\":[\"grafana.home.lan\"],\"X-Forwarded-Port\":[\"80\"],\"X-Forwarded-Proto\":[\"http\"],\"X-Forwarded-Server\":[\"db94d5995dc5\"],\"X-Real-Ip\":[\"192.168.178.20\"]},\"ContentLength\":0,\"TransferEncoding\":null,\"Host\":\"grafana.home.lan\",\"Form\":null,\"PostForm\":null,\"MultipartForm\":null,\"Trailer\":null,\"RemoteAddr\":\"192.168.178.20:56791\",\"RequestURI\":\"/\",\"TLS\":null}"
time="2020-01-22T08:45:22Z" level=debug msg="vulcand/oxy/roundrobin/rr: begin ServeHttp on request" Request="{\"Method\":\"HEAD\",\"URL\":{\"Scheme\":\"\",\"Opaque\":\"\",\"User\":null,\"Host\":\"\",\"Path\":\"/\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\"},\"Proto\":\"HTTP/1.1\",\"ProtoMajor\":1,\"ProtoMinor\":1,\"Header\":{\"Accept\":[\"*/*\"],\"User-Agent\":[\"curl/7.54.0\"],\"X-Forwarded-Host\":[\"grafana.home.lan\"],\"X-Forwarded-Port\":[\"80\"],\"X-Forwarded-Proto\":[\"http\"],\"X-Forwarded-Server\":[\"db94d5995dc5\"],\"X-Real-Ip\":[\"192.168.178.20\"]},\"ContentLength\":0,\"TransferEncoding\":null,\"Host\":\"grafana.home.lan\",\"Form\":null,\"PostForm\":null,\"MultipartForm\":null,\"Trailer\":null,\"RemoteAddr\":\"192.168.178.20:56828\",\"RequestURI\":\"/\",\"TLS\":null}"
time="2020-01-22T08:45:22Z" level=debug msg="vulcand/oxy/roundrobin/rr: Forwarding this request to URL" Request="{\"Method\":\"HEAD\",\"URL\":{\"Scheme\":\"\",\"Opaque\":\"\",\"User\":null,\"Host\":\"\",\"Path\":\"/\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\"},\"Proto\":\"HTTP/1.1\",\"ProtoMajor\":1,\"ProtoMinor\":1,\"Header\":{\"Accept\":[\"*/*\"],\"User-Agent\":[\"curl/7.54.0\"],\"X-Forwarded-Host\":[\"grafana.home.lan\"],\"X-Forwarded-Port\":[\"80\"],\"X-Forwarded-Proto\":[\"http\"],\"X-Forwarded-Server\":[\"db94d5995dc5\"],\"X-Real-Ip\":[\"192.168.178.20\"]},\"ContentLength\":0,\"TransferEncoding\":null,\"Host\":\"grafana.home.lan\",\"Form\":null,\"PostForm\":null,\"MultipartForm\":null,\"Trailer\":null,\"RemoteAddr\":\"192.168.178.20:56828\",\"RequestURI\":\"/\",\"TLS\":null}" ForwardURL="http://172.18.0.8:3000"
time="2020-01-22T08:45:22Z" level=debug msg="vulcand/oxy/roundrobin/rr: completed ServeHttp on request" Request="{\"Method\":\"HEAD\",\"URL\":{\"Scheme\":\"\",\"Opaque\":\"\",\"User\":null,\"Host\":\"\",\"Path\":\"/\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\"},\"Proto\":\"HTTP/1.1\",\"ProtoMajor\":1,\"ProtoMinor\":1,\"Header\":{\"Accept\":[\"*/*\"],\"User-Agent\":[\"curl/7.54.0\"],\"X-Forwarded-Host\":[\"grafana.home.lan\"],\"X-Forwarded-Port\":[\"80\"],\"X-Forwarded-Proto\":[\"http\"],\"X-Forwarded-Server\":[\"db94d5995dc5\"],\"X-Real-Ip\":[\"192.168.178.20\"]},\"ContentLength\":0,\"TransferEncoding\":null,\"Host\":\"grafana.home.lan\",\"Form\":null,\"PostForm\":null,\"MultipartForm\":null,\"Trailer\":null,\"RemoteAddr\":\"192.168.178.20:56828\",\"RequestURI\":\"/\",\"TLS\":null}"

Still, I don't get the expected results. Any ideas?
Also, curl requests to HTTPS routes don't show up in the logs. :thinking:

Hello,

you have to set tls on the router configuration for http://grafana.home.lan.

could you provide your docker-compose file.

I don't use a docker-compose file but start containers individually via Ansible. So for each and every container, I have to add the label "traefik.http.routers.<containername>.tls=true"?

This worked all so beautifully out of the box in Traefik 1.0 and became so cumbersome with Traefik 2.0. :weary: