AEMは、SSL/TLS が終了したロードバランサーを通じてアクセスした場合に、ユーザーを http にリダイレクトします。

説明 description

環境

  • Adobe Experience Manager

問題/症状
SSL によって終了したロードバランサー(または SSL によって終了した CDN)を介してAEMにアクセスする場合、AEMは https から http にリダイレクトします。

ロードバランサーでの SSL ターミネーションとは、ロードバランサーに SSL 証明書がインストールされていることを意味します。エンドユーザーがhttps://を通じてサイトにアクセスし、Dispatcher/Web サーバーとAEMはhttp://を使用してバックエンドでアクセスします。

解決策 resolution

原因

ロードバランサーが異なると、異なるヘッダーが送信されて、バックエンドシステムに SSL ​はアップストリームを終了します。 例えば、Amazon ELB は、「X-Forwarded-Proto: https」ヘッダーを使用します

​​​​​​The(

問題を修正するには:

I. Dispatcher の/clientheaders 設定を更新する

ロードバランサーがダウンストリームシステムに SSL ターミネーションであることを通知するために設定しているヘッダーを調べるには、お使いのロードバランサーのドキュメントを参照してください。簡単にするため、これらの手順では、正しい HTTP ヘッダーが「X-Forwarded-Proto: https"

  1. Dispatcher サーバーにログインします。
  2. Dispatcher ファームの.any 設定を開きます。
  3. /clientheaders セクションにヘッダーを追加します。

ロードバランサーを使用していない場合、またはロードバランサーやプロキシが X-Forwarded-Proto ヘッダーを使用する場合は、Web サーバーまたは Dispatcher レベルで設定できます。 を使用している場合、 Apache HTTP サーバーに接続してから、 HTTPS VirtualHost ​次のディレクティブを使用:

1
RequestHeader  set X-Forwarded-Proto  "https"

II. ヘッダー設定を更新する:

  1. に移動します。 http://host:port/system/console/configMgr/org.apache.felix.http.sslfilter.SslFilter管理者としてログインします。
  2. 設定  SSL ​ヘッダーを次に転送:  X-Forwarded-Proto です。
  3. 設定  SSL ~に価値を転送する  https.
  4. 「保存」をクリックします。

メモ:

どのプロトコルが使用されているかをバックエンドに伝えるリバースプロキシヘッダーの標準はありません。とはいえ、次に、既知のものを示します。

  • 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.
  • プロキシ/ロードバランサー接続を有効にする」設定を有効にして、保存します。
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f