Olvídate del HTTP con Traefik

Cuando empecé a desplegar mis servicios con Traefik, al principio exponía siempre 2 endpoint, uno HTTP y otro HTTPS, haciendo que el primero redireccionara al segundo a través del middleware que había definido. Al principio me valía, pero actualmente tengo gestionados unos 12 endpoint y eso requería mantener 24 enrutadores para ambos casos... Un poco coñazo y, sobre todo, feo. Entrar a la consola de Traefik y ver todos los endpoint duplicados no me gustaba nada. Por ello decidí buscar una solución.

Y al final resulta que es bastante sencillo, en realidad. Bastará con que declaremos, dentro de los command de nuestro fichero de docker-compose.yml la siguiente línea:

services:
  traefik:
    command:
      - --entrypoints.web.address=:80
      - --entrypoints.web.http.redirections.entryPoint.to=https
      - --entrypoints.https.address=:443
      - [...] // Otros comandos
Comando para redirigir todas las peticiones de HTTP a HTTPS en Traefik

Y con eso bastaría para redirigir todo el tráfico de nuestro endpoint HTTP (en nuestro caso, llamado web) al endpoint definido para HTTPS (en el ejemplo, llamado también https).

Con eso, nuestro dashboard de Traefik quedará mucho más limpio:

Dashboard de Traefik redirigiendo todo a HTTPS

Y de esta forma, cuando accedamos a http://blog.parravidales.es (en el ejemplo), automáticamente seremos redirigidos a la versión HTTPS, sin tener que especificar dicha ruta en Traefik 😊.