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

本文討論當嘗試透過SSL已終止的負載平衡器(或SSL已終止的CDN)存取時,您會從​ https ​重新導向至​ http ​的Experience Manager問題。

說明 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