HTTPS、AWS ELB、CloudFront 和 S3

Posted

技术标签:

【中文标题】HTTPS、AWS ELB、CloudFront 和 S3【英文标题】:HTTPS, AWS ELB, CloudFront & S3 【发布时间】:2021-01-29 12:18:35 【问题描述】:

背景:我的 bigcorp.com 部门被卖掉了,现在我们是 lilcorp.com。我们部署了一组设备,它们将在https://updates.bigcorp.com/ 上寻找软件更新,但由于我们不再控制 bigcorp.com,我们需要更新我们的设备以检查https://updates.lilcorp.com。 bigcorp 为我们提供了 updates.bigcorp.com 的证书,并有一个 DNS CNAME,用于将 updates.bigcorp.com 的流量转发到 server.lilcorp.com。

我正在尝试这样配置:

              HTTPS           HTTPS

Appliance -----------> ELB -----------> CloudFront ----------> S3

                    Cert for             Cert for
                    updates.             updates.
                    bigcorp.             lilcorp.
                      com                  com

我有以下 DNS 记录:

将.bigcorp.com CNAME 更新为 server.lilcorp.com server.lilcorp.com CNAME 到 ELB updates.lilcorp.com CNAME 到 CloudFront.net 地址

CloudFront 配置为使用 S3 存储桶作为其来源。

状态:如果我直接点击 CloudFront,一切正常,但这无济于事,因为设备正在点击 updates.bigcorp.com 地址。

问题:

ELB 可以转发到 CloudFront 部署吗?我不知道如何使它成为“目标”。 我是否需要在其中放置一个 Web 服务器来处理重定向/转发?

提前致谢。

【问题讨论】:

【参考方案1】:

ELB 可以转发到 CloudFront 部署吗?我不知道如何使它成为“目标”。

不,它不能。目标(对于 ALB)只能是私有 IP 地址、lambda 和实例 ID。

我需要在其中放置一个网络服务器来处理重定向/转发吗?

是的,您需要某种代理。使用 ALB,您可以使用 lambda 函数。所以 ALB 会调用一个 lambda 函数,该函数会查询外部 CloudFront 发行版并返回结果。

【讨论】:

谢谢。我将研究 Lambda 解决方案,但目前,我的解决方法是简单地使用 DNS 将 updates.lilcorp.com 别名为 CloudFront 主机。

以上是关于HTTPS、AWS ELB、CloudFront 和 S3的主要内容,如果未能解决你的问题,请参考以下文章

使用Cloudfront而不是单个EC2实例的AWS ELB设置有什么意义?

使用 Cloudfront 设置 AWS ELB 而不是单个 EC2 实例有啥意义?

我应该为 elb 和 aws S3 设置两个不同的 Cloudfront 发行版吗?

Cloudfront + ELB 可以更改我的请求的查询字符串吗?

CORS 请求未成功 - Cloudfront 和 ELB over HTTPS

用于 PHP 托管的 AWS CloudFront