Amazon CloudFront
开发人员指南 (API 版本 2016-09-29)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

要求在 CloudFront 和 Amazon S3 源之间使用 HTTPS 进行通信

当您的源是 Amazon S3 存储桶时,用于使用 HTTPS 以与 CloudFront 进行通信的选项取决于您使用存储桶的方式。如果将 Amazon S3 存储桶配置为网站终端节点,则无法将 CloudFront 配置为使用 HTTPS 与源进行通信,因为 Amazon S3 在该配置中不支持 HTTPS 连接。

当您的源是支持 HTTPS 通信的 Amazon S3 存储桶时,CloudFront 始终使用查看器用来提交请求的协议将请求转发到 S3。源协议策略 设置的默认设置为 Match Viewer (匹配查看器),并且不能更改。

如果您希望要求在 CloudFront 和 Amazon S3 之间使用 HTTPS 进行通信,您必须将查看器协议策略值更改为将 HTTP 重定向到 HTTPS仅 HTTPS。有关如何使用 CloudFront 控制台更改查看器协议策略的信息,请参阅本节后面的步骤。有关使用 CloudFront API 更新 Web 分配的 ViewerProtocolPolicy 元素的信息,请参阅 Amazon CloudFront API Reference 中的 UpdateDistribution

当您将 HTTPS 与支持 HTTPS 通信的 Amazon S3 存储桶结合使用时,Amazon S3 会提供 SSL/TLS 证书,因此您无需提供。

将 CloudFront 配置为要求 HTTPS 到您的 Amazon S3 源

  1. 登录 AWS 管理控制台,通过以下网址打开 CloudFront 控制台:https://console.amazonaws.cn/cloudfront/

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

  3. Behaviors 选项卡中,选择要更新的缓存行为,然后选择 Edit

  4. 指定 Viewer Protocol Policy 的以下值之一:

    Redirect HTTP to HTTPS

    查看器可以使用两种协议,但 HTTP 请求将自动重定向到 HTTP 请求。CloudFront 返回 HTTP 状态代码 301 (Moved Permanently) 以及新的 HTTPS URL。然后,查看器会使用此 HTTPS URL 将请求重新提交到 CloudFront。

    重要

    CloudFront 不会将 DELETEOPTIONSPATCHPOSTPUT 请求从 HTTP 重定向到 HTTPS。如果配置一个缓存行为以重定向到 HTTPS,CloudFront 将为该缓存行为的 HTTP DELETEOPTIONSPATCHPOSTPUT 请求返回 HTTP 状态代码 403 (Forbidden)。

    在查看器发出将重定向到 HTTPS 请求的 HTTP 请求时,会产生针对这两个请求的 CloudFront 费用。对于 HTTP 请求,仅对该请求和 CloudFront 返回到查看器的标头计费。对于 HTTPS 请求,对该请求、标头和由源返回的对象计费。

    HTTPS Only

    查看器只有使用 HTTPS 才能访问您的内容。如果查看器发送 HTTP 请求而不是 HTTPS 请求,则 CloudFront 将返回 HTTP 状态代码 403 (禁止访问) 且不会返回对象。

  5. 选择是,编辑

  6. 对于要求在查看器和 CloudFront 之间以及 CloudFront 和 S3 之间使用 HTTPS 的每种其他缓存行为,重复步骤 3 到 5。

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

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

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

    • 缓存行为将请求路由到正确的源。