通过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/Web服务器和AEM在后端通过http://访问。

解决方法 resolution

要解决此问题:

I.更新Dispatcher /clientheaders配置

请参阅负载均衡器的文档,了解它设置了哪个标头来通知下游系统它终止了 SSL。为方便起见,在这些步骤中,我们假定“X-Forwarded-Proto: https”是正确的HTTP标头

  1. 登录到 Dispatcher 服务器。
  2. 打开Dispatcher场.any配置。
  3. 将标头添加到/clientheaders部分。

如果您使用的Dispatcher没有负载均衡器,或者您的负载均衡器或代理无法设置​ X-Forwarded-Proto ​标头,则可以在Web服务器或Dispatcher级别设置它。 如果您正在使用​ Apache HTTP ​服务器,请使用以下指令更新您的​ HTTPS VirtualHost

1
RequestHeader  set X-Forwarded-Proto  "https"

二、更新标头配置:

  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”标头。

三、更新 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