选择 CloudFront 如何处理 HTTPS 请求 - Amazon CloudFront

选择 CloudFront 如何处理 HTTPS 请求

如果希望您的查看器使用 HTTPS 并对您的文件使用备用域名,请为 CloudFront 处理 HTTPS 请求的方式选择下列选项之一:

本部分说明了每个选项的工作方式。

使用 SNI 处理 HTTPS 请求(适用于大多数客户端)

服务器名称指示 (SNI) 是对 TLS 协议的扩展,2010 年以后发布的浏览器和客户端均支持。如果您将 CloudFront 配置为使用 SNI 处理 HTTPS 请求,则 CloudFront 将备用域名与每个边缘站点中的 IP 地址关联。当查看器提交针对内容的 HTTPS 请求时,DNS 将该请求传送到正确边缘站点的 IP 地址。指向您域名的 IP 地址在 SSL/TLS 握手协商期间确定;IP 地址并非专用于您的分发。

在建立 HTTPS 连接的过程的早期便进行了 SSL/TLS 协商。如果 CloudFront 无法立即确定该请求所针对的域,则它会中断连接。在支持 SNI 的查看器针对您的内容提交 HTTPS 请求时,将发生以下操作:

  1. 查看器自动从请求 URL 中获取域名,并将其添加到 TLS 客户端问候消息的 SNI 扩展中。

  2. 当 CloudFront 收到 TLS 客户端问候时,它会使用 SNI 扩展中的域名来查找匹配的 CloudFront 分配并发回关联的 TLS 证书。

  3. 查看器和 CloudFront 执行 SSL/TLS 协商。

  4. CloudFront 将请求的内容返回到查看器。

有关支持 SNI 的浏览器的当前列表,请参阅 Wikipedia 条目服务器名称指示

如果您希望使用 SNI,但您的某些用户的浏览器不支持 SNI,则您有以下几种选择:

  • 配置 CloudFront 以使用专用 IP 地址而不是 SNI 来提供 HTTPS 请求。有关更多信息,请参阅 使用专用 IP 地址处理 HTTPS 请求(适用于所有客户端)

  • 使用 CloudFront SSL/TLS 证书而不是自定义证书。这要求您在文件的 URL(例如 https://d111111abcdef8.cloudfront.net/logo.png)中为您的分配使用 CloudFront 域名。

    如果您使用默认 CloudFront 证书,查看器必须支持 SSL 协议 TLSv1 或更高版本。CloudFront 不支持 SSLv3 使用默认的 CloudFront 证书。

    您还必须将 CloudFront 使用的 SSL/TLS 证书从自定义证书更改为默认 CloudFront 证书:

    • 如果您尚未使用分配来分发内容,则只需更改配置。有关更多信息,请参阅 更新分配

    • 如果您已使用分配来分发内容,则必须创建新的 CloudFront 分配并更改文件的 URL,以便减少或消除内容不可用的时间。有关更多信息,请参阅 从自定义 SSL/TLS 证书恢复为默认 CloudFront 证书

  • 如果您可以控制用户使用的浏览器,请让用户将浏览器升级为支持 SNI 的浏览器。

  • 使用 HTTP 而不是 HTTPS。

使用专用 IP 地址处理 HTTPS 请求(适用于所有客户端)

服务器名称指示 (SNI) 是一种将请求与域关联的方法。另一种方法是使用专用 IP 地址。如果您的用户无法升级到 2010 年之后发布的浏览器或客户端,您可以使用专用 IP 地址为 HTTPS 请求提供服务。有关支持 SNI 的浏览器的当前列表,请参阅 Wikipedia 条目服务器名称指示

重要

如果您将 CloudFront 配置为使用专用 IP 地址提供 HTTPS 请求,则每月会产生额外的费用。一旦您将 SSL/TLS 证书与某个分配关联并启用该分配,就将开始计费。有关 CloudFront 定价的更多信息,请参阅 Amazon CloudFront 定价。另请参阅Using the Same Certificate for Multiple CloudFront Distributions

当您将 CloudFront 配置为使用专用 IP 地址处理 HTTPS 请求时,CloudFront 会将您的证书与每个 CloudFront 边缘站点中的专用 IP 地址关联。在查看器针对您的内容提交 HTTPS 请求时,将发生以下操作:

  1. DNS 将请求路由到适用边缘站点中您的分配的 IP 地址。

  2. 如果客户端请求在 ClientHello 消息中提供 SNI 扩展,CloudFront 会搜索与该 SNI 关联的分配。

    • 如果存在匹配项,CloudFront 会使用 SSL/TLS 证书响应该请求。

    • 如果没有匹配项,CloudFront 会改用 IP 地址来识别您的分配,并确定将哪个 SSL/TLS 证书返回给查看器。

  3. 查看器和 CloudFront 使用您的 SSL/TLS 证书执行 SSL/TLS 协商。

  4. CloudFront 将请求的内容返回到查看器。

此方法适用于每个 HTTPS 请求,无论用户使用的是浏览器还是其他查看器。

注意

专用 IP 不是静态 IP,可能会随着时间的推移而变化。为边缘站点返回的 IP 地址是从 CloudFront 边缘服务器列表的 IP 地址范围动态分配的。

CloudFront 边缘服务器的 IP 地址范围可能会更改。要收到 IP 地址更改的通知,请通过 Amazon SNS 订阅 AWS 公有 IP 地址更改

请求使用三个或更多专用 IP SSL/TLS 证书的权限

如果您需要权限将三个或更多 SSL/TLS 专用 IP 证书与 CloudFront 永久关联,请执行以下步骤。有关 HTTPS 请求的更多信息,请参阅选择 CloudFront 如何处理 HTTPS 请求

注意

此过程在您的多个 CloudFront 分配之间使用三个或三个以上的专用 IP 证书。默认值是 2。请记住,您不能将多个 SSL 证书绑定到一个分配。

您一次只能将一个 SSL/TLS 证书与一个 CloudFront 分配关联。此数字是在您的所有 CloudFront 分配中可以使用的专用 IP SSL 证书的总数。

请求权限以在 CloudFront 分配中使用三个或更多证书
  1. 转到支持中心并创建案例。

  2. 注明您需要多少个证书的使用授权,并在请求中描述具体情况。我们将尽快更新您的账户。

  3. 继续执行下一个过程。