Keycloak за Apache https прокси "https требуется" - PullRequest
0 голосов
/ 09 июля 2019

Я просто настроил контейнер док-станции keycloak следующим образом:

docker run --name keycloak --net keycloak-network -e DB_ADDR=mysql -e DB_DATABASE=keycloak -e DB_USER=keycloak -e DB_PASSWORD=mypassword -d -p 8088:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=mypassword -e KEYCLOAK_HOSTNAME="keycloak.example.net" -e PROXY_ADDRESS_FORWARDING=true -e KEYCLOAK_HTTPS_PORT=443 jboss/keycloak

На моем сервере запущен веб-сервер apache2 с следующим файлом конфигурации для доступных сайтов "keycloak.example.net":

<virtualhost keycloak.example.net:80>
    ServerName keycloak.example.net

    Redirect permanent / https://keycloak.example.net/
</virtualhost>

<virtualhost keycloak.example.net:443>
    ServerName keycloak.example.net

    SSLEngine On

    SSLCertificateFile /etc/letsencrypt/live/keycloak.example.net/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/keycloak.example.net/privkey.pem

    SSLProxyEngine on
    ProxyPreserveHost On

    <location />
        Order allow,deny
        Allow from all
        Require all granted
        ProxyPass http://localhost:8088/
        ProxyPassReverse http://localhost:8088/
    </location>
</virtualhost>

Мой веб-сервер apache уже правильно перенаправляет меня (заставляет https видеть) в мой докер-контейнер, работающий через порт 8088 на моем хост-компьютере, на внутренний порт док-контейнеров 8080.

Как только я захожу на https://keycloak.example.net/auth - он пытается перенаправить меня на сайт corret keycloak, но затем выдает эту ошибку:

HTTPS required

Что мне нужно изменить, чтобы сделатьэто работает?

enter image description here

1 Ответ

0 голосов
/ 22 июля 2019

Решение

Так что я наконец-то смог исправить свою ошибку следующим образом:

  1. Редактировать мой keycloak.example.conf в каталоге /etc/apache2/sites-available:
...
<virtualhost keycloak.example.net:443>
...
RequestHeader set X-Forwarded-Proto "https"
...
Обязательно включите модуль headers в apache: a2enmod headers Перезапустите мой сервер Apache: service apache2 restart

Заключение

Итак,Кажется, я просто не настроил свой сервер apache для пересылки трафика https необходимым способом.

Я надеюсь, что смогу помочь кому-нибудь с этим решением и сэкономить вам время.Большое спасибо @Boomer, который разместил необходимую ссылку, и @Mario, который поддержал этот одинокий вопрос и показал мне свои решения.

...