需要使用 HTTPS 才能在 CloudFront 和您的自定义源之间进行通信 - Amazon CloudFront

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

需要使用 HTTPS 才能在 CloudFront 和您的自定义源之间进行通信

您可以要求 HTTPS 才能在源站 CloudFront 之间进行通信。

注意

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

要要求在源站 CloudFront 之间使用 HTTPS,请按照本主题中的步骤执行以下操作:

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

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

更改 CloudFront设置

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

配置 CloudFront 为要求在 CloudFront 和您的自定义源之间使用 HTTPS
  1. 登录AWS Management Console并打开 CloudFront 控制台,网址为https://console.aws.amazon.com/cloudfront/v4/home

  2. 在 CloudFront 控制台的顶部窗格中,选择要更新的发行版的 ID。

  3. Origins 选项卡中,选择要更新的源,然后选择 Edit

  4. 更新以下设置:

    源协议策略

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

    • 仅限 HTTP S — 仅 CloudFront 使用 HTTPS 与您的自定义源进行通信。

    • Match Viewer — 使用 HTTP 或 HTTPS 与您的自定义源进行 CloudFront 通信,具体取决于查看者请求的协议。例如,如果您为源协议策略选择 Match View er,并且查看者使用 HTTPS 从中请求对象 CloudFront,则 CloudFront 还会使用 HTTPS 将请求转发到您的源。

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

      CloudFront 即使查看者同时使用 HTTP 和 HTTPS 协议发出请求,也只能缓存对象一次。

    Origin SSL Protocols

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

  5. 选择是,编辑

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

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

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

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

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

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

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

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

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

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

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

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

CloudFront 使用 HTTPS 与您的来源通信时, CloudFront 会验证证书是否由受信任的证书颁发机构颁发。 CloudFront 支持与 Mozilla 相同的证书颁发机构。有关当前列表,请参阅 Mozilla 包含的 CA 证书列表。您不能使用自签名证书在源服务器之间 CloudFront 进行 HTTPS 通信。

重要

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