透過SSL/TLS已終止的負載平衡器存取時,AEM會重新導向回http

本文會討論從以下位置重新導向您的Experience Manager問題: httpshttp ​嘗試透過SSL已終止的負載平衡器(或SSL已終止的CDN)存取時。

說明 description

環境

Experience Manager

問題/症狀

透過 SSL 已終止的負載平衡器 (或 SSL 已終止的 CDN) 存取 AEM 時,則 AEM 會從 https 重新導向 http。

負載平衡器處的 SSL 終止表示 SSL 憑證已安裝在負載平衡器中。一般使用者透過https://存取網站,而Dispatcher/網頁伺服器和AEM則在後端透過http://存取。

解決方法 resolution

若要修正問題:

I.更新Dispatcher /clientheaders設定

請參閱負載平衡器的文件,了解它設定了哪個標題來通知下游系統它終止了 SSL。為簡化起見,在這些步驟中,我們假設正確的HTTP標題為"X-Forwarded-Proto: https"

  1. 登入到 Dispatcher 伺服器。
  2. 開啟Dispatcher陣列.any設定。
  3. 將標題新增至/clientheaders區段。

如果您使用沒有負載平衡器的Dispatcher,或者您的負載平衡器或Proxy無法設定 X-Forwarded-Proto 標頭,則您可以在網頁伺服器或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. 按一下 儲存

注意:

沒有用於告知後端使用哪種通訊協定的反向 Proxy 標題的標準。但是,這裡有一些是已知的:

  • Amazon ELB (彈性負載平衡器)使用「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.
  • 啟用設定 啟用Proxy/負載平衡器連線,並儲存。

原因

不同的負載平衡器會傳送不同的標頭來通知後端系統 SSL ​已終止上游作業。 例如, Amazon ELB使用標頭「X-Forwarded-Proto:https」.

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