需要使用 HTTPS 才能 CloudFront与您的 Amazon S3 源进行通信 - Amazon CloudFront

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

需要使用 HTTPS 才能 CloudFront与您的 Amazon S3 源进行通信

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

如果您的源是支持 HTTPS 通信的 Amazon S3 存储桶,请 CloudFront 始终使用查看者提交请求时使用的协议将请求转发到 S3。协议(仅自定义源) 的默认设置为匹配查看器,并且不能更改。

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

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

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

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

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

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

    Redirect HTTP to HTTPS

    查看者可以使用这两种协议,但是 HTTP 请求会自动重定向到 HTTPS 请求。 CloudFront 返回 HTTP 状态码 301(永久移动)以及新的 HTTPS 网址。然后,查看者 CloudFront 使用 HTTPS 网址将请求重新提交到。

    重要

    CloudFront 不会将来自 HTTP 的DELETEOPTIONSPATCH、、POST、或PUT请求重定向到 HTTPS。如果您将缓存行为配置为重定向到 HTTPS,则使用 HTTP DELETE 状态代码 403(禁止)来 CloudFront 响应 HTTP POST、、、或对该缓存行为的PUT请求。OPTIONS PATCH

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

    HTTPS Only

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

  5. 选择是,编辑

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

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

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

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

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