我在前面配置了一个带有Apache的Keycloak服务器作为反向代理。 Keycloak仅在http模式下运行,所有SSL都由Apache处理。我根据官方的Keycloak文档配置了整个系统。
我面临的问题是,在从localhost以外的计算机访问Keycloak管理控制台时,该页面为空白(导航栏除外)。在从托管它的机器(localhost)访问时,它工作正常,但在从任何其他机器访问时,它只显示一个空白页面。服务器也不会抛出任何错误。我附上了以下空白管理页面的图片。
另一件需要注意的事情是,其他页面,如我的帐户页面,工作正常。问题仅出在主管理页面上。此外,我注意到管理页面是一个Angular应用程序,因此可能是相关的。
我正在使用的相关配置和设置。
Keycloak设置(CLI命令)。
embed-server --server-config=standalone.xml
/subsystem=undertow/server=default-server/http-listener=default/:write-attribute(name=proxy-address-forwarding,value=true)
/socket-binding-group=standard-sockets/socket-binding=proxy-https/:add(port=443)
/subsystem=undertow/server=default-server/http-listener=default/:write-attribute(name=redirect-socket,value=proxy-https)
Apache配置。
<VirtualHost *:80>
DocumentRoot /var/www/html
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Redirect permanent '/' https://%{HTTP_HOST}
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www/html
ProxyPreserveHost On
ProxyRequests Off
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
ProxyPass /auth http://127.0.0.1:8080/auth
ProxyPassReverse /auth http://127.0.0.1:8080/auth
SSLEngine on
SSLCertificateFile /etc/ssl/certs/oauth-server.crt
SSLCertificateKeyFile /etc/ssl/private/oauth-server.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>