I have Traefik 2.2.1 running on my home server, exposing a few docker containers. This works fine, but the last thing I need to fix is http to https redirect. I no matter what I do, I can't get it to work. I have the following setup:
I run traefik with this middleware configured:
http:
middlewares:
https_redirect:
redirectScheme:
scheme: https
permanent: true
This works, because I see the middleware existing in the traefik GUI. Now the next part is to apply this middleware to my running docker containers. I run each container using this command:
/usr/bin/docker run --name=myserice \
--expose 2368 \
-d \
-l "traefik.http.routers.myservice.rule=Host(\"www.myservice.nl\",\"myservice.nl\")" \
-l "traefik.http.routers.myservice.tls=true" \
-l "traefik.http.routers.myservice.tls.certresolver=letsEncrypt" \
-l "traefik.http.routers.myservice.entrypoints=https" \
-l "traefik.http.routers.myservice.middlewares=https_redirect@file" \
-l "traefik.enable=true" \
ghost:latest
This exposes the service on https://myservice.nl, but it doesn't add a redirect when I try to connect to http. So for some reason I need to "tell" traefik to apply the redirect middleware, because this mechanism currently doesn't work.