Traefik基本身份验证不适用于HTTPS

时间:2017-11-23 12:07:13

标签: traefik

我使用这些标签在Docker Warm Mode中运行服务:

- "traefik.docker.network=proxy"
- "traefik.backend=kibana"
- "traefik.frontend.entryPoints=https,http"
- "traefik.frontend.rule=Host:mydomain"
- "traefik.port=5601"
- "traefik.frontend.auth.basic=test:098f6bcd4621d373cade4e832627b4f6"

使用HTTPS

出现此问题
curl -u test:test https://my-domain.com
401 Unauthorized

使用HTTP一切正常

curl -u test:test http://my-domain.com
Found

3 个答案:

答案 0 :(得分:0)

我发现问题的原因,我将服务部署为具有traefik变量"traefik.frontend.auth.basic=test:$$apr1$$EaOXV0L6$DQbzuXBeb6Y8jjI2ZbGsg/"的堆栈。但是,此变量的部署值看起来像test:/

手动设置正确的值后 - auth工作正常。

此外,我尝试使用命令docker service create和variable具有正确的值来部署服务。

答案 1 :(得分:0)

使用htpassword为我解决了这个问题。似乎Traefik使用相同的算法来散列密码。

apt install apache2-utils

htpasswd -nb your_username "your_password_here"

您将收到相应的哈希值

your_username:khrglahfslgkha345346

复制将其粘贴到您的.toml或docker-compose脚本中。

使用您的密码(而不是哈希)进行前端登录,一切都会正常进行。

答案 2 :(得分:0)

我最近发现您必须注意生成的hash中的双美元符号。在不同情况下,您必须转义$。...