SSL/TLS ターミネーションが有効なロードバランサー経由でアクセスした場合、AEMは http にリダイレクトする
この記事では、SSL ターミネーションが有効なロードバランサー(または SSL ターミネーションが有効な CDN)経由でアクセスしようとすると https から http にリダイレクトされるExperience Managerの問題について説明します。
説明 description
環境
Adobe Experience Manager
問題/症状
SSL ターミネーションが有効なロードバランサー(または SSL ターミネーションが有効な CDN)を経由して AEM にアクセスすると、AEM は https から http にリダイレクトします。
ロードバランサーでの SSL ターミネーションとは、ロードバランサーに SSL 証明書がインストールされていることを意味します。エンドユーザーがhttps://経由でサイトにアクセスすると、バックエンドではDispatcher/Web サーバーおよびAEMがhttp://でアクセスします。
解決策 resolution
問題を修正するには:
I.Dispatcherの更新/clientheaders 設定
ロードバランサーがダウンストリームシステムに SSL ターミネーションであることを通知するために設定しているヘッダーを調べるには、お使いのロードバランサーのドキュメントを参照してください。簡単にするために、ここでは、正しい HTTP ヘッダーは「X-Forwarded-Proto: https」と想定し います。
- Dispatcher サーバーにログインします。
- Dispatcher ファームを開きます。任意の設定。
- ヘッダーを/clientheaders セクションに追加します。
ロードバランサーなしで Dispatcher を使用している場合や、ロードバランサーやプロキシが X-Forwarded-Proto ヘッダーを設定できない場合は、web サーバーまたは Dispatcher レベルで設定できます。 Apache HTTP サーバーを使用している場合は、次のディレクティブで HTTPS VirtualHost を更新します。
RequestHeader
set
X-Forwarded-Proto
"https"
II. ヘッダー設定を更新する:
http://host:port/system/console/configMgr/org.apache.felix.http.sslfilter.SslFilter
に移動して、管理者としてログインします。- SSL forward ヘッダーを X-Forwarded-Proto. に設定します。
- SSL forward 値を https に設定します。
- 「保存」をクリックします。
メモ:
どのプロトコルが使用されているかをバックエンドに伝えるリバースプロキシヘッダーの標準はありません。とはいえ、次に、既知のものを示します。
- Amazon ELB (Elastic Load Balancer)は、「X-Forwarded-Proto: https」ヘッダーを使用します。
- Amazon Cloudfront CDN は、「X-Cloudfront-Proto: https」ヘッダーを使用します。
III. Jetty OSGi 設定を更新する(AEM 6.3 以降のバージョン)
AEM 6.3 以降のバージョンでは、追加の設定が必要です。
- にログインします
http://aem-host:port/system/console/configMgr/org.apache.felix.http.
。 - プロキシ/ロードバランサー接続を有効にする 設定を有効にして、保存します。
原因
ロードバランサーが異なると、ヘッダーが異なり、バックエンドシステムに SSL ターミネーションが有効なアップストリームであることを通知します。 例えば、Amazon ELB は、「X-Forwarded-Proto: https」ヘッダーを使用しす。