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

說明

環境

  • Experience Manager

問題/症狀
透過SSL終止的負載平衡器(或SSL終止的CDN)存取AEM時,AEM會從https重新導向回http。

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

解析度

原因

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

​​​​ ​ ​

若要解決此問題:

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. 按一下儲存。

注意:

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

  • 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.
  • 啟用設定 啟用 Proxy/負載平衡器連線,並將其儲存。

本頁內容