通过SSL/TLS已终止的负载平衡器访问时,AEM将用户重定向回http
描述 description
环境
- Experience Manager
问题/症状
当通过SSL已终止的负载均衡器(或SSL已终止的CDN)访问AEM时,AEM会从https重定向回http。
负载均衡器处的 SSL 终止意味着 SSL 证书已安装在负载均衡器中。最终用户通过https://访问该站点,Dispatcher/Web服务器和AEM在后端通过http://访问。
解决方法 resolution
原因
不同的负载平衡器会发送不同的标头,以通知后端系统 SSL 终止于上游。 例如,Amazon ELB 使用标头“X-Forwarded-Proto: https”。
要解决此问题:
I.更新Dispatcher /clientheaders配置
请参阅负载均衡器的文档,了解它设置了哪个标头来通知下游系统它终止了 SSL。为简单起见,在这些步骤中,我们假设正确的HTTP标头是''X-Forwarded-Proto:https"
- 登录到 Dispatcher 服务器。
- 打开Dispatcher场.any配置。
- 将标头添加到/clientheaders部分。
如果您使用的Dispatcher没有负载均衡器,或者您的负载均衡器或代理无法设置 X-Forwarded-Proto 标头,然后可以在Web服务器或Dispatcher级别设置它。 如果您使用 Apache HTTP 服务器,然后更新您的 HTTPS虚拟主机 使用以下指令:
1
RequestHeader
set
X-Forwarded-Proto
"https"
二、更新标头配置:
- 转到
http://host:port/system/console/configMgr/org.apache.felix.http.sslfilter.SslFilter
,并以管理员身份登录。 - 设置 SSL 将标题转发到 X-Forwarded-Proto
- 设置 SSL 将值转发到 https.
- 单击“保存”。
注释:
没有用于告诉后端使用哪种协议的反向代理标头的标准。 但是,以下是已知标准:
- 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.
- 启用设置 启用代理/负载平衡器连接,并保存。
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f