在 CloudFront 分发中为不同的域使用不同的 SSL 证书?

Using a different SSL certificate for different domains in CloudFront distribution?

我有一个 CloudFront 发行版,用于在我的网站上提供静态文件(图像等)。从今天开始,它使用默认的 foo.cloudfront.net 域(带有亚马逊的免费内置 SSL 证书)。

我想将此分发切换到属于我站点的 "real" 域(例如 media.mysite.com)。一旦我在 CloudFront 中进行此更改(例如,从其默认 CloudFront 证书切换到我自己的 *.mysite.com 证书),这会破坏我在 https://foo.cloudfront.net[=29 上提供的现有文件吗=]?

如果是这种情况,那么我需要以某种方式将我网站上的所有图像源切换到新域,同时为分发启用自定义 SSL 证书,这将很棘手。

另一方面,阅读 the docs 表明 CloudFront 可能正在做一些工作来确定要使用的证书:

CloudFront uses the IP address to identify your distribution and to determine which SSL/TLS certificate to return to the viewer.

...可能吗?

有没有人有过这种转换的经验,或者是否有更好的方法来切换域而不必同时更改大量 URL 引用?

如果我理解这种担忧,

  1. 您的 CloudFront URL https://foo.cloudfront.net 将在切换到 media.mysite.com 后正常工作。

  2. 您需要做的就是将 CNAME foo.cloudfront.net 添加到域 media.mysite.com 并在云端分发设置中将 media.mysite.com 定义为 CNAME。此外,将您的自定义 SSL 证书添加到分发中。

  3. 不,它不会破坏您的任何内容,除非您硬编码了一些对 Cloudfront 的依赖 URL。比如请求Origin应该是CloudfrontURL等等

CloudFront 使用 IP 地址来识别您的分配并确定向查看者 return 发送哪个 SSL/TLS 证书。

回答- 仅当您选择了专用 IP 时才会发生这种情况,这意味着您要为所有用户提供服务,包括不支持 SNI 的客户端。 以下是当您使用 SNI 而不是专用 IP 时会发生什么 -

When CloudFront receives the request, it finds the domain name in the request header and responds to the request with the applicable SSL/TLS certificate.

我猜你没有选择专用IP。

PS - 我昨天做了这个并且很顺利。在边缘位置部署 Cloudfront 需要一些时间,请耐心等待。希望这对您有所帮助!