Hello,
as the TLS part is on the router, you have to create a router for the TLS route.
example 1 (two routers):
version: "3.7"
services:
traefik:
image: traefik:v2.0.2
command:
- --entrypoints.web.address=:80
- --entrypoints.websecure.address=:443
- --providers.docker
- --api.insecure=true
ports:
- "8080:8080"
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
# - "$PWD/traefik.toml:/etc/traefik/traefik.toml"
whoami:
image: containous/whoami
labels:
- "traefik.http.routers.whoami_http.rule=Host(`whoami.docker.localhost`)"
- "traefik.http.routers.whoami_http.entrypoints=web"
- "traefik.http.routers.whoami_http.middlewares=redirect-to-https"
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
- "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)"
- "traefik.http.routers.whoami.entrypoints=websecure"
- "traefik.http.routers.whoami.tls=true"
example 2 (global redirect):
version: "3.7"
services:
traefik:
image: traefik:v2.0.2
command:
- --entrypoints.web.address=:80
- --entrypoints.websecure.address=:443
- --providers.docker
- --api.insecure=true
ports:
- "8080:8080"
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
# - "$PWD/traefik.toml:/etc/traefik/traefik.toml"
labels:
# global redirect to https
- "traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)"
- "traefik.http.routers.http-catchall.entrypoints=web"
- "traefik.http.routers.http-catchall.middlewares=redirect-to-https"
# middleware redirect
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
whoami:
image: containous/whoami
labels:
- "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)"
- "traefik.http.routers.whoami.entrypoints=websecure"
- "traefik.http.routers.whoami.tls=true"
Recommended readings: