のため、Admin loginpageを開くことができませんでしたので、nginxベースのリバースプロキシであるkong(0.10.3)の後ろで動作するkeycloak 3.2.1の問題があります。リバースプロキシの背後にあるKeycloakを使用しています:混在したコンテンツ
シナリオは次のとおりです。
管理コンソールなどへのリンク、私はhttps://{gateway}/auth
経由で私のゲートウェイルートを経由してkeycloak呼び出し、それがkeycloakロゴエントリポイントを私に示して - これまでのところは良いです。
しかし、管理コンソール - >https://{gateway}/auth/admin/master/console/
を呼び出すと、keycloakは混在したコンテンツのために私のブラウザがブロックするhttp(下記のscreenieを参照)を介してcss/jsを読み込もうとします。 、私は内容の成功と私のdockerfileにcliを(ファイルは変更されませんでしたをその統合しようとした、そこにからhttps://github.com/dukecon/keycloak_postgres_https
:
は、私の周りを検索し、このスレッドが見つかりました:keycloak apache server configuration with 'Mixed Content' problemsこのgithubのレポにつながります私のレポにそれらをコピーして、ドッカーファイルから追加/実行するだけです)。これが今の私のdockerfileです:
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
をだから私は今のアイデアを午前とあなたは私を助けることを願っ:
Keycloakにhttps経由でその 'cssファイル'を呼び出すように指示するにはどうすればよいですか?
私はcliスクリプトで何かを変更する必要がありますか?
ここでは、スクリプトの内容です:
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
と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
それは香港という、あまりにも興味深いかもしれませんhttpからhttpsへのリダイレクト( "insecureEdgeTerminationPolicy": "Redirect")を使用して、ルートを使ってオープンシフトで展開されます。
は
私はkong/nginxをチェックし、私が確信しているときに回答を受け入れます(私のワークベンチatmではなく、時間がかかるでしょう)。今までありがとう! – Dominik
同じ状況に陥っている人にとっては、私はこのヒントをここにも載せておきます:ブーマーが説明したもの(実際には、kongがデフォルトごとに正しいヘッダーを送信します)とは別に、8080経由で呼び出されたオープンシフトサービスkcの8080の標準ポートバインディングはhttpであるため、kcはhttpを提供します。私たちは、8443、et voilaを使うように、オープンシフト設定を変更しました。働いた。 :) – Dominik