es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

traefik no redirecciona de http a https.

Soy nuevo en traefik y no entendí por qué no redirige.
He visto muchas formas de hacer redirecciones, y esta es bastante adecuada para mí, porque quiero que la redirección funcione en todos los enrutadores.
Especialmente no quiero escribir la redirección en las etiquetas de cada enrutador.

docker-compose.yml

services:
  traefik:
    image: traefik:v2.5
    container_name: traefik
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true
    ports:
      - 80:80
      - 443:443 
      - 8082:8082
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./data/traefik.yml:/traefik.yml:ro
      - ./data/custom/:/custom/:ro
      - ./data/acme.json:/acme.json
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.traefik.rule=Host(`traefik.example.com`)"
      - "traefik.http.routers.traefik.tls=true"
      - "traefik.http.routers.traefik.tls.certresolver=letsEncrypt"
      - "traefik.http.routers.traefik.service=api@internal"
      - "traefik.http.services.traefik-traefik.loadbalancer.server.port=888"
      - "traefik.http.middlewares.traefik-auth.basicauth.users=admin:$$apr1$$yTyey7a2$$CDmIjg/aratMfqENIHcQW1"
      - "traefik.http.routers.traefik.middlewares=traefik-auth"

traefik.yml

api:
  dashboard: true

entryPoints:
  http:
    address: ":80"
    http:
      redirections:
        entryPoint:
          to: https
          scheme: https
          permanent: true
  https:
    address: ":443"
  metrics:
    address: ":8082"

metrics:
  prometheus:
    entryPoint: metrics

providers:
  docker:
    endpoint: "unix:///var/run/docker.sock"
    exposedByDefault: false
  file:
    directory: /custom
    watch: true

certificatesResolvers:
  letsEncrypt:
    acme:
      email: postmaster@example.com
      storage: acme.json
      #caServer: "https://acme-staging-v02.api.letsencrypt.org/directory"
      httpChallenge:
        entryPoint: http
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    En los archivos docker-compose.yml y traefik.yml proporcionados, la redirección de http a https ya está implementada utilizando el middleware de redirección de traefik. La sección entryPoints en traefik.yml define el punto de entrada http y especifica el middleware de redirección para redirigir todas las solicitudes http a https de forma permanente.

    entryPoints:
      http:
        address: ":80"
        http:
          redirections:
            entryPoint:
              to: https
              scheme: https
              permanent: true
      https:
        address: ":443"
    

    Esto significa que cualquier solicitud http entrante en el puerto 80 se redireccionará de forma permanente al punto de entrada https en el puerto 443. Por lo tanto, no es necesario escribir la redirección en las etiquetas de cada enrutador, ya que ya está implementada a nivel de punto de entrada.

    Asegúrate de reemplazar el dominio example.com por tu nombre de dominio real en la etiqueta del enrutador http de traefik.

    traefik.http.routers.traefik.rule=Host(`traefik.example.com`)
    

Comments are closed.