環境
問題/症状
SSL によって終了したロードバランサー(または SSL によって終了した CDN)を介してAEMにアクセスする場合、AEMは https から http にリダイレクトします。
ロードバランサーでの SSL ターミネーションとは、ロードバランサーに SSL 証明書がインストールされていることを意味します。エンドユーザーがhttps://を通じてサイトにアクセスし、Dispatcher/Web サーバーとAEMはhttp://を使用してバックエンドでアクセスします。
原因:
ロードバランサーが異なると、異なるヘッダーが送信され、バックエンドシステムに SSLはアップストリームを終了します。 例えば、Amazon ELB は、「X-Forwarded-Proto: https」ヘッダーを使用します。
The(
問題を修正するには:
I. Dispatcher の/clientheaders 設定を更新する
ロードバランサーがダウンストリームシステムに SSL ターミネーションであることを通知するために設定しているヘッダーを調べるには、お使いのロードバランサーのドキュメントを参照してください。簡単にするため、これらの手順では、正しい HTTP ヘッダーが「X-Forwarded-Proto:https"
ロードバランサーを使用していない場合、またはロードバランサーまたはプロキシが X-Forwarded-Proto ヘッダーを使用する場合は、Web サーバーまたは Dispatcher レベルで設定できます。 次を使用する場合: Apache HTTP サーバーに接続してから、 HTTPS VirtualHost次のディレクティブを使用:
1 | RequestHeader set X-Forwarded-Proto "https" |
---|
II. ヘッダー設定を更新する:
http://host:port/system/console/configMgr/org.apache.felix.http.sslfilter.SslFilter
管理者としてログインします。メモ:
どのプロトコルが使用されているかをバックエンドに伝えるリバースプロキシヘッダーの標準はありません。とはいえ、次に、既知のものを示します。
III. Jetty OSGi 設定を更新する(AEM 6.3 以降のバージョン)
AEM 6.3 以降のバージョンでは、追加の設定が必要です。
http://aem-host:port/system/console/configMgr/org.apache.felix.http.