Traefik 基本认证

Traefik Basic Auth

我最近开始将 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"

我的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

好像跟哈希密码有关。 所有 $ 符号必须由另一个 $ 转义,而不是开头的第一个。 此外,并非每个 crypt 函数都得到处理。 尝试使用此生成密码:echo $(htpasswd -nb user password) | sed -e s/\$/\$\$/ghttps://docs.traefik.io/middlewares/basicauth/#users

中所示