Traefik 基本身份验证

use*_*932 3 docker docker-compose traefik

我最近开始将 Traefik 与 Docker 结合使用,我必须说它太棒了。我目前遇到的问题是,当我将基本身份验证中间件应用到 Traefik 仪表板,然后加载仪表板时,它不断地无限循环地提示我输入用户名和密码,而我永远无法访问仪表板。然而,它在没有基本身份验证的情况下工作得很好,我可以很好地加载我的仪表板。请问有人可以帮忙吗?在过去的几天里它一直让我发疯。请参阅下面我的示例。(注意密码散列我已经尝试过在开头有或没有额外的美元符号,但都不起作用)。先感谢您。

我的 Docker 撰写文件:

version: '3'
services:
  traefik:
    image: "traefik:v2.2"
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /home/user/traefik/traefik.yml:/etc/traefik/traefik.yaml:ro
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.api.rule=Host(`traefik.com`)"
      - "traefik.http.routers.api.entrypoints=insecure"
      - "traefik.http.routers.api.service=api@internal"
      - "traefik.http.routers.api.middlewares=api-auth"
      - "traefik.http.middlewares.api-auth.basicauth.users=admin:$$..."
networks:
  default:
    external:
      name: "web"
Run Code Online (Sandbox Code Playgroud)

我的 Traefik.yml 文件

providers:
  docker:
    endpoint: "unix:///var/run/docker.sock"
    network: "web" # Custom docker network
    exposedByDefault: false 

entryPoints:
  insecure:
    address: ":80"
  secure:
    address: ":443"

api:
  dashboard: true
Run Code Online (Sandbox Code Playgroud)

tou*_*ssa 9

似乎与哈希密码有关。所有$符号都必须由另一个符号转义$,而不是开头的第一个符号。此外,并不是所有的 crypt 函数都被处理。尝试使用以下命令生成密码:echo $(htpasswd -nb user password) | sed -e s/\\$/\\$\\$/ghttps://docs.traefik.io/middlewares/basicauth/#users中所示