Mit Keycloak hinter einem reverse-proxy: Konnte nicht geöffnet Admin loginpage, da mixed Content

also ich habe ein problem immer keycloak 3.2.1 arbeiten hinter kong (0.10.3), ein reverse-proxy basierend auf nginx.

Szenario ist:

Nenne ich keycloak über mein gateway-route über https://{gateway}/auth und es zeigt mir den entrypoint mit keycloak-logo, link zur admin-Konsole usw. - so weit, so gut.

Aber beim klicken auf Verwaltung-Konsole -> aufrufen https://{gateway}/auth/admin/master/console/ , keycloak zu laden versucht seine css - /js über http (siehe screenie unten), die mein browser blockiert, da mixed content.

Suchte ich herum und fand diesen thread: keycloak apache-server-Konfiguration mit 'Mixed Content' - Probleme, die dazu führen, das github repo: https://github.com/dukecon/keycloak_postgres_https

Von da an, versuchte ich zu integrieren' cli in meine dockerfile mit Erfolg (nicht ändern, die Inhalte der Dateien nur kopiert und Sie in mein repo hinzufügen/ausführen dockerfile). Dies ist mein dockerfile jetzt:

FROM jboss/keycloak-postgres:3.2.1.Final

USER root

ADD config.sh /tmp/
ADD batch.cli /tmp/

RUN bash /tmp/config.sh

#Give correct permissions when used in an OpenShift environment.
RUN chown -R jboss:0 $JBOSS_HOME/standalone && \
    chmod -R g+rw $JBOSS_HOME/standalone

USER jboss
EXPOSE 8080

Traurig, aber mein problem besteht immer noch:
Mit Keycloak hinter einem reverse-proxy: Konnte nicht geöffnet Admin loginpage, da mixed Content

So, ich bin aus Ideen für jetzt und hoffe Ihr könnte mir helfen:

  • Wie sage ich keycloak zu nennen seine " css-Dateien über https-hier?
  • muss ich haben, etwas zu ändern im cli-Skript?

Hier ist der Inhalt des Skripts:

config.sh:

#!/bin/bash -x

set -e

JBOSS_HOME=/opt/jboss/keycloak
JBOSS_CLI=$JBOSS_HOME/bin/jboss-cli.sh
JBOSS_MODE=${1:-"standalone"}
JBOSS_CONFIG=${2:-"$JBOSS_MODE.xml"}

echo "==> Executing..."
cd /tmp

$JBOSS_CLI --file=`dirname "$0"`/batch.cli

# cf. http://stackoverflow.com/questions/34494022/permissions-error-when-using-cli-in-jboss-wildfly-and-docker
/bin/rm -rf ${JBOSS_HOME}/${JBOSS_MODE}/configuration/${JBOSS_MODE}_xml_history/current

- und batch.cli:

embed-server --std-out=echo

# http://keycloak.github.io/docs/userguide/keycloak-server/html/server-installation.html
# 3.2.7.2. Enable SSL on a Reverse Proxy
# First add proxy-address-forwarding and redirect-socket to the http-listener element.
# Then add a new socket-binding element to the socket-binding-group element.

batch

/subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=proxy-address-forwarding,value=true)

/subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=redirect-socket,value=proxy-https)

/socket-binding-group=standard-sockets/socket-binding=proxy-https:add(port=443)

run-batch

stop-embedded-server

Kann es von Interesse sein, auch, dass kong das Deployment auf openshift mit einer route über einen redirect von http zu https ( "insecureEdgeTerminationPolicy": "Redirect" ).

Haben Sie dieses Problem behoben? Gibt es ein funktionierendes Beispiel kann ich schauen?

InformationsquelleAutor Dominik | 2017-11-08

Schreibe einen Kommentar