問題点

SSL ターミネーションを使用したロードバランサー(または SSL ターミネーションを使用した CDN)経由で AEM にアクセスした場合に、https から http にリダイレクトされます。

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

原因

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

解決策

問題を修正するには:

I. ホットフィックス 6922 をインストールする

AEM6.0 または 6.1 を使用している場合:

  1. AEM カスタマーケアに問い合わせて、ホットフィックス 6922 の提供を依頼します。このホットフィックスは AEM 6.0 用ですが、AEM 6.1 にも使用できます。

  2. http://aem-host:port/crx/packmgr/index.jsp に移動し、管理者としてログインします。

  3. ホットフィックスの zip を AEM パッケージマネージャーにインストールします。

    注意:

    このホットフィックスは、Apache Felix SSL Filter によって更新されたリダイレクト中に URL アンカーが失われるという問題を回避するのに役立ちます。例えば、このホットフィックスを適用していない場合、https://host/cf#/content/geometrixx/en.html は https://host/cf にリダイレクトされます。

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

ロードバランサーのドキュメントを参照して、SSL ターミネーションの使用をダウンストリームシステムに通知するために設定されているヘッダーを調べます。わかりやすいように、次の手順では正しい HTTP ヘッダーが「X-Forwarded-Proto: https」であると想定します。

  1. Dispatcher サーバーにログインします。

  2. Dispatcher ファームの .any 設定を開きます。

  3. /clientheaders セクションにヘッダーを追加します。

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

RequestHeader set X-Forwarded-Proto "https"

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

  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」ヘッダーが使用されます。

IV.Jetty OSGi 設定を更新する(AEM 6.3 以降のバージョン)

AEM 6.3 以降のバージョンでは、追加の設定が必要です。

  1. http://aem-host:port/system/console/configMgr/org.apache.felix.http にログインします。

  2. プロキシ/ロードバランサー接続の有効化」設定を有効にし、保存します。

  3. Sling 認証サービス を検索し、設定を開きます。

  4. 「匿名アクセスを許可」の選択を解除します。

  5. 「保存」をクリックします。

この問題についてさらに詳しくは、ソリューションの記事を参照してください。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

リーガルノーティス   |   プライバシーポリシー