对 CloudFront 分配中的不同域使用不同的 SSL 证书?
Posted
技术标签:
【中文标题】对 CloudFront 分配中的不同域使用不同的 SSL 证书?【英文标题】:Using a different SSL certificate for different domains in CloudFront distribution? 【发布时间】:2018-07-03 10:11:36 【问题描述】:我有一个 CloudFront 分配,用于在我的网站上提供静态文件(图像等)。到今天为止,它使用默认的foo.cloudfront.net
域(带有亚马逊免费的内置 SSL 证书)。
我想将此分发版切换到属于我网站一部分的“真实”域(例如media.mysite.com
)。一旦我在 CloudFront 中进行此更改(例如,从其默认 CloudFront 证书切换到我自己的 *.mysite.com
证书),这会破坏我通过 https://foo.cloudfront.net
提供的现有文件吗?
如果是这种情况,那么我需要以某种方式将我网站上的所有图像源切换到新域,同时为分发启用自定义 SSL 证书,这会很棘手。
另一方面,阅读 the docs 表明 CloudFront 可能正在做一些工作来确定要使用哪个证书:
CloudFront 使用 IP 地址来识别您的分配并确定将哪个 SSL/TLS 证书返回给查看器。
...可能吗?
有没有人有过这种转换的经验,或者有没有更好的方法来切换域而不必同时更改大量的 URL 引用?
【问题讨论】:
【参考方案1】:如果我理解这个问题,
您的 CloudFront URL https://foo.cloudfront.net
将在切换到 media.mysite.com
后工作。
您需要做的就是将 CNAME foo.cloudfront.net
添加到域 media.mysite.com
并在云端分发设置中将 media.mysite.com
定义为 CNAME。此外,将您的自定义 SSL 证书添加到分发中。
不,除非您硬编码了对 Cloudfront URL 的某些依赖项,否则它不会破坏您的任何内容,直到 &。比如请求的 Origin 应该是 Cloudfront URL 等。
CloudFront 使用 IP 地址来识别您的分配并确定将哪个 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 需要一些时间,请耐心等待。希望这会有所帮助!
【讨论】:
谢谢 - 我可以确认这有效(例如,当我将其更改为使用我的自定义 SSL 证书时,它在我请求foo.cloudfront.net
时为 Cloudfront 提供服务,在我访问它时为我自己的证书提供服务通过mysite.com
)。以上是关于对 CloudFront 分配中的不同域使用不同的 SSL 证书?的主要内容,如果未能解决你的问题,请参考以下文章