配置备用域名和 HTTPS - Amazon CloudFront
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

配置备用域名和 HTTPS

要在文件的 URL 中使用备用域名并在查看者和之间使用 HTTPS CloudFront,请执行适用的程序。

获取 SSL/TLS 证书

如果您还没有 SSL/TLS 证书,请获取一个。有关更多信息,请参阅相应文档:

  • 要使用 Amazon Certificate Manager (ACM) 提供的证书,请参阅 Amazon Certificate Manager 用户指南。然后跳至 更新您的 CloudFront 发行版

    注意

    建议您使用 ACM 在 Amazon 托管资源上预置、管理和部署 SSL/TLS 证书。您必须在美国东部(弗吉尼亚北部)区域申请 ACM 证书。

  • 要从第三方证书颁发机构 (CA) 获取证书,请参阅该证书颁发机构提供的文档。当您拥有该证书时,请继续执行下一个步骤。

导入 SSL/TLS 证书

如果您从第三方 CA 得到证书,请将证书导入 ACM,或者上传到 IAM 证书存储:

ACM(推荐)

ACM 可让您从 ACM 控制台以及以编程方式导入第三方证书。有关将证书导入 ACM 的信息,请参阅《Amazon Certificate Manager 用户指南》中的将证书导入 Amazon Certificate Manager。您必须在美国东部(弗吉尼亚北部)区域导入证书。

IAM 证书存储

(不推荐)请使用以下 Amazon CLI 命令将您的第三方证书上载到 IAM 证书存储。

aws iam upload-server-certificate \ --server-certificate-name CertificateName \ --certificate-body file://public_key_certificate_file \ --private-key file://privatekey.pem \ --certificate-chain file://certificate_chain_file \ --path /cloudfront/path/

请注意以下几点:

  • Amazon账户 — 您必须使用创建 CloudFront 分配时使用的相同Amazon账户将证书上传到 IAM 证书存储区。

  • --path 参数 – 在将证书上传到 IAM 时,--path 参数(证书路径)的值必须以 /cloudfront/ 开头,例如 /cloudfront/production//cloudfront/test/。该路径必须以 / 结尾。

  • 现有的证书 – 您必须指定 --server-certificate-name--path 参数的值,这些值不同于与现有证书关联的值。

  • 使用 CloudFront 控制台 — 例如,您在中为--server-certificate-name参数指定的值显示在 CloudFront控制台的 SSL 证书列表中。Amazon CLI myServerCertificate

  • 使用 CloudFront API — 记下Amazon CLI返回的字母数字字符串,例如,AS1A2M3P4L5E67SIIXR3J。这是您将在 IAMCertificateId 元素中指定的值。您无需 IAM ARN(也由 CLI 返回)。

有关 Amazon CLI 的更多信息,请参阅 Amazon Command Line Interface 用户指南Amazon CLI 命令参考

更新您的 CloudFront 发行版

要更新您的分配的设置,请执行以下步骤:

为备用域名配置您的 CloudFront 分配
  1. 登录Amazon Web Services Management Console并打开 CloudFront 控制台,网址为https://console.amazonaws.cn/cloudfront/v4/home

  2. 为要更新的分配选择 ID。

  3. General 选项卡上,选择 Edit

  4. 更新以下值:

    备用域名 (CNAME)

    添加适用的备用域名。用逗号隔开多个域名,或在新行中键入每个域名。

    SSL 证书

    选择自定义 SSL 证书,然后从列表中选择证书。

    此处列出了多达 100 个证书。如果您有超过 100 个证书并且您没有看到要添加的证书,则可以在字段中键入一个证书 ARN 以选择它。

    如果您已将证书上传到 IAM 证书存储,但该证书没有被列出,并且您无法通过在字段中键入名称来选择它,请查看过程 导入 SSL/TLS 证书以确认您已正确上传证书。

    重要

    将 SSL/TLS 证书与CloudFront 分配关联后,在将证书从所有分配中移除并且分配状态更改为 “已部署” 之前,请勿从 ACM 或 IAM 证书存储中删除该证书。

    支持的客户

    选择适用的选项:

    • 所有客户端:使用专用 IP 地址 CloudFront 提供您的 HTTPS 内容。如果您选择该选项,则当您将 SSL/TLS 证书与已启用的分配关联时,将产生额外的费用。有关更多信息,请参阅 Amazon CloudFront 定价

    • 仅限支持服务器名称指示 (SNI) 的客户端:不支持 SNI 的旧版浏览器或其他客户端必须使用其他方法访问您的内容。

    有关更多信息,请参阅选择如何处理 HT CloudFront TPS 请求

  5. 选择是,编辑

  6. 配置 CloudFront 为要求在查看者和 CloudFront以下用户之间使用 HTTPS:

    1. 行为选项卡中,选择要更新的缓存行为,然后选择编辑

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

      Redirect HTTP to HTTPS

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

      重要

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

      当观看者发出重定向到 HTTPS 请求的 HTTP 请求时,会对这两个请求 CloudFront 收费。对于 HTTP 请求,仅对该请求和 CloudFront 返回到查看器的标头计费。对于 HTTPS 请求,对该请求、标头和由您的源返回的文件计费。

      HTTPS Only

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

    3. 选择是,编辑

    4. 针对要求在查看器和 CloudFront 之间使用 HTTPS 的其他每个缓存行为,重复步骤 a 到 c。

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

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

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

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