À l'aide de Keycloak derrière un reverse proxy: ne Peut pas ouvrir Admin loginpage en raison du Contenu mixte

donc j'ai un problème keycloak 3.2.1 le travail d'arrière-kong (0.10.3), un reverse proxy basé sur nginx.

Scénario:

J'appelle keycloak via mon passerelle de l'itinéraire via https://{gateway}/auth et il me montre le point d'entrée avec keycloak logo, lien vers l'admin console etc. - c'est très bien.

Mais lorsque l'on clique sur la console d'administration -> appel https://{gateway}/auth/admin/master/console/ , keycloak essaie de charger ses css/js via http (voir screenie ci-dessous), mon navigateur bloque à cause du contenu mixte.

J'ai cherché et trouvé ce fil: keycloak la configuration du serveur apache avec "Contenu Mixte" les problèmes d' qui conduisent à ce dépôt github: https://github.com/dukecon/keycloak_postgres_https

À partir de là, j'ai essayé d'intégrer ses cli dans mon dockerfile avec succès (ne pas modifier le contenu des fichiers, juste copié dans mon repo et ajouter/exécuter à partir de dockerfile). C'est mon dockerfile dès maintenant:

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

Malheureusement, mon problème persiste:
À l'aide de Keycloak derrière un reverse proxy: ne Peut pas ouvrir Admin loginpage en raison du Contenu mixte

Donc je suis à court d'idées pour l'instant et j'espère que vous pourriez m'aider:

  • Comment puis-je dire keycloak appeler son " css fichiers via le protocole https ici?
  • dois-je changer quelque chose dans le script cli?

Voici le contenu du script:

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

et lot.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

Il peut être intéressant aussi, que kong est déployé sur openshift avec un itinéraire à l'aide d'une redirection http vers https ( "insecureEdgeTerminationPolicy": "Redirect" ).

Avez-vous résolu ce problème? Est-il un exemple de travail je peux jeter un oeil de?

OriginalL'auteur Dominik | 2017-11-08