Базовая аутентификация Traefik не работает с HTTPS

Я запускаю службу в 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

person Giwery    schedule 23.11.2017    source источник


Ответы (3)


Я недавно узнал, что вам нужно позаботиться о двойных знаках доллара в полученном hash. Вы должны избегать $ в разных сценариях ....

person dimisus    schedule 04.04.2019

Я нашел причину проблемы, разворачиваю сервис как стек с переменной traefik "traefik.frontend.auth.basic=test:$$apr1$$EaOXV0L6$DQbzuXBeb6Y8jjI2ZbGsg/". Но после развертывания значение этой переменной выглядит как test:/.

После ручной установки правильного значения - auth работает нормально.

Также я попытался развернуть службу с помощью команды docker service create, а переменная имеет правильное значение.

person Giwery    schedule 27.11.2017

Использование htpassword решило эту проблему для меня. Похоже, что Traefik использует тот же алгоритм, чтобы расшифровать пароли.

apt install apache2-utils

htpasswd -nb your_username "your_password_here"

Вы получите соответствующий хеш

your_username:khrglahfslgkha345346

Скопируйте и вставьте его в свой .toml или скрипт docker-compose.

Используйте свой пароль (а не хэш) для входа в систему на вашем интерфейсе, и все будет работать нормально.

person dimisus    schedule 15.09.2018