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」と想定し います。

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

ロードバランサーなしで Dispatcher を使用している場合や、ロードバランサーやプロキシが 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 forward ヘッダーを X-Forwarded-Proto. に設定します。
  3. SSL forward 値を 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.
  • プロキシ/ロードバランサー接続を有効にする 設定を有効にして、保存します。

原因

ロードバランサーが異なると、ヘッダーが異なり、バックエンドシステムに SSL ターミネーションが有効なアップストリームであることを通知します。 例えば、Amazon ELB は、「X-Forwarded-Proto: https」ヘッダーを使用しす。

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f