我只是按如下所示设置了一个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 Web服务器,其中包含以下用于我的网站的配置文件-可用的“ 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上的docker容器上,在docker-containers内部端口8080上。
我访问https://keycloak.example.net/auth时-它试图将我重定向到corret keycloak站点,但随后引发此错误:
HTTPS required
要使其正常运行,我需要更改什么?
答案 0 :(得分:0)
所以我终于可以用这种方式修复我的错误:
keycloak.example.conf
目录中编辑我的/etc/apache2/sites-available
:...
<virtualhost keycloak.example.net:443>
...
RequestHeader set X-Forwarded-Proto "https"
...
headers
模块:a2enmod headers
service apache2 restart
因此,看来我只是没有配置apache服务器以必要的方式转发https流量。
我希望我可以为某人提供此解决方案,并为您节省一些时间。非常感谢@Boomer发布了必要的链接,并感谢@Mario支持这个孤独的问题并向我展示了他的解决方案。