从 http 重定向到 https 时,cloudfront 域被应用程序负载均衡器 dns 名称替换
Posted
技术标签:
【中文标题】从 http 重定向到 https 时,cloudfront 域被应用程序负载均衡器 dns 名称替换【英文标题】:cloudfront domain replaced by application load balancer dns name when redirecting from http to https 【发布时间】:2019-06-06 06:59:06 【问题描述】:我正在为我的应用程序使用 AWS Cloudfront 和 AWS 应用程序负载均衡器 (ALB)。 Alb 为端口 80 和 443 的两个侦听器配置,都将流量转发到 HTTP(默认规则)上的单个目标组(实例类型)。
Cloudfront 设置为使用 ALB 作为具有给定设置的源。
源协议策略 = HTTP
,
交付方式 = 网络,
查看者协议政策 = HTTP & HTTPS
&
使用默认的云端 ssl 证书。
由于我的 ALB 正在侦听端口 80 和 443,因此我的应用程序在 http 和 https 上运行良好。现在,当我编辑端口 80 的侦听器的默认规则以将流量重定向到端口 443(之前设置为转发到 80 上的目标组,如前所述)以进行 https 重定向时,我的云端域被我的 ALB 域替换,并且资源(css 、图像等)加载失败。
例如重定向前
资源的 URL - daxxxxxxxxxxxx.cloudfront.net/media/jdfghusfe/abc.png
(带有云端域)
重定向后 -
资源网址 - main-albxxxxxx-amazonaws.com/media/jdfghusfe/abc.png
有人可以帮忙吗? 提前致谢。
【问题讨论】:
刚刚经历了这个,所有其他答案要么已经过时,要么太模糊而无法真正理解。这是一个演练:***.com/questions/69399672 【参考方案1】:好的,我们已经解决了这个问题。首先,我们没有绕过 Host 标头。因此,为了使其正常工作,我们将“基于选定请求标头的缓存”设置为白名单和白名单主机标头。 (要了解更多信息,请参阅此答案AWS Cloudfront + Load Balancer, url changes from main domain to load balancer subdomain)
现在,当主机设置正确时,我们要么遇到无限重定向循环,要么遇到错误的证书错误。为了摆脱这种情况,我们改变了 CDN(云端)与负载均衡器建立连接的方式。以前只能通过 HTTP 来避免证书出现任何问题。但现在这是不可能的,因为我们从 HTTP 重定向,它会创建一个无限的重定向循环。所以我们在 CDN ALB 连接中配置了HTTPS
(将源协议策略更新为HTTPS
)。为了绕过证书问题,将 xxxxx.cloudfront.net
域更改为 cdn.mysite.com
(在 route53 配置中使用 CNAME)并添加了用于 *.mysite.com 的自定义证书。
【讨论】:
感谢您发布此解决方案,这对我有帮助! 刚刚经历了这个,所有其他答案要么已经过时,要么太模糊而无法真正理解。这是一个演练:***.com/questions/69399672以上是关于从 http 重定向到 https 时,cloudfront 域被应用程序负载均衡器 dns 名称替换的主要内容,如果未能解决你的问题,请参考以下文章
从 http 重定向到 https 时,从 url 中删除斜线
从 http 重定向到 https 时是不是存在潜在的数据泄漏?