4

I have configured a Keycloak server with Apache at the front acting as a reverse proxy. Keycloak is running on http mode only, all the SSL is being handled by Apache. I've configured the whole system according to the official Keycloak docs.

The problem I'm facing is, on accessing the Keycloak admin console from a machine other than localhost, the page is blank (except the navbar). On accessing from the machine on which it is hosted (localhost), it works fine, but on accessing from any other machine it just shows a blank page. The server also does not throw any error. I'm attaching an image of the blank admin page below.

Blank Keycloak admin console
(source: firefoxusercontent.com)

Another thing to note would be, other pages, like my account page, are working fine. The problem is only with the main admin page. Also, I've noticed that the admin page is an Angular app, so that may be relevant.

Relevant configs and settings I'm using.

Keycloak settings (CLI commands).

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 config.

<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>
Glorfindel
  • 21,988
  • 13
  • 81
  • 109
Sumit Ghosh
  • 1,033
  • 10
  • 29

0 Answers0