要求在 CloudFront 与您的自定义源之间使用 HTTPS 进行通信 - Amazon CloudFront
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

要求在 CloudFront 与您的自定义源之间使用 HTTPS 进行通信

您可以要求使用 HTTPS 在 CloudFront 与您的源之间的通信

注意

如果您的源是配置为网站终端节点的 Amazon S3 存储桶,则无法将 CloudFront 配置为将 HTTPS 与源结合使用,因为 Amazon S3 不支持对网站终端节点使用 HTTPS。

如需要求在 CloudFront 和您的源之间的需要使用 HTTPS,请按照本主题中的过程执行以下操作:

  1. 在您的分配中,更改源的 Origin Protocol Policy (源协议策略) 设置

  2. 在您的自定义源服务器上安装 SSL/TLS 证书(当您使用 Amazon S3 源或某些其他 Amazon 源时,不需要执行此操作)。

要求自定义源使用 HTTPS

以下过程介绍了如何配置 CloudFront 以使用 HTTPS 与 Elastic Load Balancing 负载均衡器、Amazon EC2 实例或其他自定义源进行通信。有关使用 CloudFront API 更新分配的信息,请参阅《Amazon CloudFront API 参考》中的 UpdateDistribution

将 CloudFront 配置为要求在 CloudFront 和您的自定义源之间使用 HTTPS
  1. 登录 Amazon Web Services Management Console,并通过以下网址打开 CloudFront 控制台:https://console.amazonaws.cn/cloudfront/v4/home

  2. 在 CloudFront 控制台的顶部窗格中,选择您要更新的分配的 ID。

  3. 行为选项卡中,选择要更新的源,然后选择编辑

  4. 更新以下设置:

    源协议策略

    为您的分配中的适用源更改源协议策略

    • 仅 HTTPS – CloudFront 仅使用 HTTPS 与自定义源进行通信。

    • 匹配查看器 – CloudFront 使用 HTTP 或 HTTPS 与自定义源进行通信,具体取决于查看器请求协议。例如,如果您源协议策略选择匹配查看器,并且查看器使用 HTTPS 从 CloudFront 请求对象,则 CloudFront 也会使用 HTTPS 将请求转发给您的源。

      只有在为查看器协议策略指定将 HTTP 重定向到 HTTPS仅 HTTPS 时,才能选择匹配查看器

      请注意,CloudFront 仅缓存对象一次,即使查看器使用 HTTP 和 HTTPS 协议发出请求也是如此。

    Origin SSL Protocols

    为您的分配中的适用源选择 Origin SSL Protocols。由于 SSLv3 协议的安全性较低,因此,建议您仅在源不支持 TLSv1 或更高版本的情况下选择 SSLv3。TLSv1 握手与 SSLv3 向后和向前兼容,但 TLSv1.1 及更高版本不是这样。当您选择 SSLv3 时,CloudFront 发送 SSLv3 握手请求。

  5. 选择保存更改

  6. 针对要求在 CloudFront 和您的自定义源之间使用 HTTPS 的其他每个源,重复步骤 3 到 5。

  7. 请确认以下内容,然后在生产环境中使用更新后的配置:

    • 每个缓存行为中的路径模式仅适用于您希望查看器使用 HTTPS 的请求。

    • 缓存行为按您希望 CloudFront 评估它们的顺序列出。有关更多信息,请参阅 路径模式

    • 缓存行为将请求路由到更改了源协议策略的源。

在自定义源上安装 SSL/TLS 证书

您可以在自定义源上使用来自以下来源的 SSL/TLS 证书:

  • 如果您的源是 Elastic Load Balancing 负载均衡器,则可以使用 Amazon Certificate Manager (ACM) 提供的证书。您也可以使用信任的第三方证书颁发机构签署并导入 ACM 的证书。

  • 对于 Elastic Load Balancing 负载均衡器之外的源,您必须使用由信任的第三方证书颁发机构 (CA)(例如,Comodo、DigiCert 或 Symantec)签署的证书。

从源返回的证书必须包括以下域名之一:

  • 源的源域字段中的域名(CloudFront API 中的 DomainName 字段)。

  • Host 标头中的域名,如果缓存行为配置为将 Host 标头转发至源。

当 CloudFront 使用 HTTPS 与您的源进行通信时,CloudFront 会验证信任的证书颁发机构颁发的证书。CloudFront 与 Mozilla 支持相同的证书颁发机构。有关当前列表,请参阅 Mozilla 包含的 CA 证书列表。您无法使用自签名证书在 CloudFront 和您的源之间进行 HTTPS 通信。

重要

如果源服务器返回过期证书、无效证书或自签名证书,或者如果源服务器以错误顺序返回证书链,CloudFront 将中断 TCP 连接,向查看器返回 HTTP 错误代码 502(无效网关),并将 X-Cache 标头设置为 Error from cloudfront。此外,如果不存在完整的证书链(包括中间证书),则 CloudFront 将中断 TCP 连接。