如果我在 Cloudfront 上启用了 SSL,AWS ALB 是不是需要 SSL?

Posted

技术标签:

【中文标题】如果我在 Cloudfront 上启用了 SSL,AWS ALB 是不是需要 SSL?【英文标题】:Is SSL required on AWS ALB if I have SSL enabled on Cloudfront?如果我在 Cloudfront 上启用了 SSL,AWS ALB 是否需要 SSL? 【发布时间】:2020-02-24 13:28:53 【问题描述】:

我有一个托管在 AWS 上的应用程序。它在应用程序服务器前面有一个 ALB。为了处理巨大的负载,我还在 AWS Application Load Balancer (ALB) 前面添加了 Cloudfront。 Cloudfront 针对动态网站内容进行了配置。我正在使用 CloudFront 的自定义域名以及 SSL 证书。

加载应用程序时,我收到如下错误:

(阻止:混合内容)

我认为,如果我们在 CloudFront 上启用 SSL,就足以确保类似于负载均衡器上的 SSL 卸载功能的安全性。

我们是否需要在 ALB 上启用 SSL 以避免此错误?

如果是,我们是否需要为 ALB 添加域名并颁发证书?

这个问题还有其他解决方法吗?任何帮助将不胜感激。

【问题讨论】:

您还需要在 ALB 上使用 SSL。在 Cloudfront 上,您可以将所有 http 重定向到 https,然后 ALB 在端口 443 上侦听,而在 ALB 的服务器端,您只需要端口 80。然后,您需要将 SSL 证书添加到 ALB。您使用的是 AWS ACM 证书吗? Cloudfront 和 ALB 之间的通信不加密会有问题吗?目前,它还没有启用 HTTPS。 【参考方案1】:

其实,在前端代码中,我已经添加了后端的 ALB URL。当我用新创建的 Cloudfront URL 替换它时,问题得到了解决。

目前,前端和后端 URL 是 HTTPS,因此解决了问题。

【讨论】:

以上是关于如果我在 Cloudfront 上启用了 SSL,AWS ALB 是不是需要 SSL?的主要内容,如果未能解决你的问题,请参考以下文章

无法将SSL证书与Amazon Cloudfront相关联

将 CloudFront 分配与 Route 53 域相关联时出现问题

如果启用SSL代理,为什么https请求在Charles Proxy上失败

如何解决 AWS CloudFront SSL 证书不存在的问题

在具有 S3 源的 CloudFront 中启用 HTTP/2 不起作用

使用 ELB 的 Cloudfront 中的 SSL 问题