簡體   English   中英

apache https代理后面的keycloak“ https required”

[英]Keycloak behind apache https proxy “https required”

我只是按如下方式設置了一個keycloak docker容器:

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網絡服務器已經正確地將我重定向到您在主機上端口8088上運行的Docker容器(如您所見,強制使用https),該容器位於docker-containers內部端口8080上。

一旦我訪問https://keycloak.example.net/auth-它會嘗試將我重定向到corret keycloak-site,但是會引發此錯誤:

HTTPS required

我必須進行哪些更改才能使其正常工作?

在此處輸入圖片說明

所以我終於可以用這種方式修復我的錯誤:

  1. /etc/apache2/sites-available目錄中編輯我的keycloak.example.conf
...
<virtualhost keycloak.example.net:443>
...
RequestHeader set X-Forwarded-Proto "https"
...
  1. 確保在apache中啟用headers模塊: a2enmod headers
  2. 重新啟動我的apache服務器: service apache2 restart

結論

因此,似乎我只是沒有配置apache服務器以必要的方式轉發https流量。

希望我能為某人提供此解決方案,並為您節省一些時間。 非常感謝@Boomer,他發布了必要的鏈接,也感謝@Mario,他支持這個孤獨的問題並向我展示了他的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM