我使用这些标签在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
答案 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
中的双美元符号。在不同情况下,您必须转义$
。...