ApacheHTTPS代理背后的密钥斗篷”;“需要https”;
我刚刚设置了一个KeyClope docker容器,如下所示:ApacheHTTPS代理背后的密钥斗篷”;“需要https”;,apache,docker,https,webserver,keycloak,Apache,Docker,Https,Webserver,Keycloak,我刚刚设置了一个KeyClope 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 KEYCLOA
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 Web服务器正在运行,我的站点的以下配置文件为“keydeport.example.net”:
我必须改变什么才能让它工作
解决方案
因此,我最终可以通过以下方式修复我的错误:
/etc/apache2/sites available
目录中编辑我的keydape.example.conf
:。。。
...
RequestHeader集合X-Forwarded-Proto“https”
...
headers
模块:a2enmod headers
service apache2 Restart
/etc/apache2/sites available
目录中编辑我的keydape.example.conf
:。。。
...
RequestHeader集合X-Forwarded-Proto“https”
...
headers
模块:a2enmod headers
service apache2 Restart
我希望我能帮助某人解决这个问题,并为您节省一些时间。非常感谢@Boomer,他发布了必要的链接,@Mario,他支持这个孤独的问题,并向我展示了他的解决方案。我今天突然发现了这个错误。我很困惑,因为我已经很长时间使用相同的配置和KeyClope映像了。也许有时间依赖性在起作用?我的设置完全是源代码控制的,所以我仍然不明白它为什么会坏。尽管如此,为了防止它对其他人有帮助:我将
主
领域的sslRequired
设置从external
更改为none
。我还没有弄明白为什么以前外部工作。@Mario你的设置是什么?您是运行容器还是从源代码构建?您看过这个答案吗?似乎这是一个非常类似的案例。@Waldemarens在生产中,我们在Kubernetes上运行,但所讨论的设置是用于本地开发的。我们正在运行jboss/keydape
docker映像。docker映像支持迁移,因此我们使用JSON配置文件来设置领域,并使用一些脚本来启用服务帐户。我很困惑,因为我已经很长时间使用相同的配置和KeyClope映像了。也许有时间依赖性在起作用?我的设置完全是源代码控制的,所以我仍然不明白它为什么会坏。尽管如此,为了防止它对其他人有帮助:我将主
领域的sslRequired
设置从external
更改为none
。我还没有弄明白为什么以前外部工作。@Mario你的设置是什么?您是运行容器还是从源代码构建?您看过这个答案吗?似乎这是一个非常类似的案例。@Waldemarens在生产中,我们在Kubernetes上运行,但所讨论的设置是用于本地开发的。我们正在运行jboss/keydape
docker映像。docker映像支持迁移,因此我们使用JSON配置文件来设置领域,并使用一些脚本来启用服务帐户。
<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>
HTTPS required
...
<virtualhost keycloak.example.net:443>
...
RequestHeader set X-Forwarded-Proto "https"
...