指向 S3 存储桶和 ELB 的 Cloudfront 分布

Cloudfront distribution pointing to S3 bucket and ELB

我正在尝试配置我的云端分配以将 mydomain.com 的请求路由到 S3 存储桶,并将 mydomain 的请求路由到 ELB。com/api/* 到 ELB。

在 route 53 中,我有 dev.mydomain.com 指向带有别名记录的云端分布

Alias to cloudfront in route53

我在云端配置了两个来源——一个到 S3,一个到可公开访问的 ELB

Cloudfront origins setup

我已经配置了一个(在默认之上)行为来将 api/* 请求路由到 ELB 源

Cloudfront behaviors setup

我对 S3 存储桶没有任何问题。当我添加新行为以将 api/* 请求路由到 ELB 时,每当我点击 api/* routes.

时,我都会收到 502 网关错误

当我从提供给 Cloudfront 的来源向 ELB 发出请求时,我在 Postman 中看到以下响应:

Error: Hostname/IP does not match certificate's altnames: 
Host: mydomain-api-dev-env.us-east-1.elasticbeanstalk.com. is not in the cert's altnames: DNS:*.mydomain.com

这让我相信 502 是因为 ELB url 未包含在 mydomain.com 的证书中。

假设这是我的问题,由于我不拥有 elasticbeanstalk.com 域,我将如何解决这个证书问题?

您必须将您自己的域与负载平衡器相关联并向其添加适当的 SSL。然后在您的 CF 发行版中,您将使用自己的 ALB 域,而不是 AWS 提供的域。