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

在 CloudFront 中使用 SSL/TLS 证书的要求

本主题中介绍了 SSL/TLS 证书的要求。除非另有说明,否则这些要求均适用于以下项:

  • 在查看器和 CloudFront 之间使用 HTTPS 的证书

  • 在 CloudFront 和源之间使用 HTTPS 的证书

证书颁发者

您必须使用的证书颁发者取决于您希望是否要在查看器和 CloudFront 之间或 CloudFront 和源之间使用 HTTPS:

  • 在查看器和 CloudFront 之间使用 HTTPS – 您可以使用信任的证书颁发机构 (CA)(如 Comodo、DigiCert 或 Symantec)颁发的证书,或者使用 AWS Certificate Manager (ACM) 提供的证书。

    重要

    如果您想要将备用域名与您的 CloudFront 分配一起使用,则必须向 CloudFront 证明您具有使用备用域名的授权。要执行此操作,必须将有效的证书附加到您的分配,并确保证书来自 Mozilla 包括的 CA 证书列表上所列的信任的 CA。CloudFront 不允许您使用自签名证书来证明您具有使用备用域名的授权。

  • 在 CloudFront 和自定义源之间使用 HTTPS – 如果源不是 ELB 负载均衡器(如 Amazon EC2),必须由信任的 CA(如 Comodo、DigiCert 或 Symantec)颁发证书。如果源是 ELB 负载均衡器,您还可以使用 ACM 提供的证书。

    重要

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

    有关获得和安装 SSL/TLS 证书的更多信息,请参考 HTTP 服务器软件的文档和证书颁发机构的文档。有关 ACM 的信息,请参阅AWS Certificate Manager 用户指南

您请求证书时所在的 AWS 区域(适用于 AWS Certificate Manager)

如果您希望要求在查看器和 CloudFront 之间使用 HTTPS,则必须在 AWS Certificate Manager 控制台中将 AWS 区域更改为 美国东部(弗吉尼亚北部),然后再请求或导入证书。

如果您希望要求在 CloudFront 和源之间使用 HTTPS,并且您正在使用 ELB 负载均衡器作为源,则您可以在任何区域中请求或导入证书。

证书格式

证书必须采用 X.509 PEM 格式。这是您使用 AWS Certificate Manager 时的默认格式。

中间证书

在 .pem 文件中,如果您使用的是第三方证书颁发机构 (CA),请在证书链中列出所有中间证书,从为您的域签署证书的 CA 所颁发的证书开始。通常,您将在以适当的链接顺序列出中间证书和根证书的 CA 网站上找到文件。

重要

请不要包括以下内容:根证书,未在信任路径中的中间证书,或者 CA 的公有密钥证书。

示例如下:

-----BEGIN CERTIFICATE----- Intermediate certificate 2 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- Intermediate certificate 1 -----END CERTIFICATE-----

密钥类型

CloudFront 仅支持 RSA 公有/私有密钥对。

私有密钥

如果您使用的是来自第三方证书颁发机构 (CA) 的证书,请注意以下几点:

  • 私有密钥必须匹配证书中的公有密钥。

  • 私有密钥还必须是 PEM 格式的 RSA 私有密钥,其中 PEM 标头为 BEGIN RSA PRIVATE KEY,脚注为 END RSA PRIVATE KEY

  • 私有密钥无法使用密码加密。

如果 AWS Certificate Manager (ACM) 提供了证书,则 ACM 不会发布私有密钥。私有密钥存储在 ACM 中,以供与 ACM 集成在一起的 AWS 服务使用。

权限

您必须有使用和导入 SSL/TLS 证书的权限,包括获得颁发相应证书的证书颁发机构 (CA) 的权限,才能将证书导入到内容分发网络 (CDN)。

如果您使用的是 AWS Certificate Manager (ACM),我们建议您使用 AWS Identity and Access Management 权限以限制证书访问。有关更多信息,请参阅 AWS Certificate Manager 用户指南 中的权限与策略

公有密钥的大小

证书的公有密钥长度取决于您将它存储在何处。

  • 将证书导入 AWS Certificate Manager (ACM):公有密钥长度必须为 1024 或 2048 位。用于 CloudFront 的证书的限制为 2048 位,即使 ACM 支持更大的密钥。

  • 将证书上传到 AWS Identity and Access Management (IAM) 证书存储:公有密钥的最大大小为 2048 位。

我们建议使用 2048 位。

有关 ACM 提供的证书的公有密钥的信息,请参阅 AWS Certificate Manager 用户指南 中的 ACM 证书特征

有关如何确定公有密钥大小的信息,请参阅确定 SSL/TLS 证书中公有密钥的大小

支持的证书类型

CloudFront 支持所有类型的证书,包括以下证书:

  • 域验证的证书

  • 扩展验证 (EV) 证书

  • 高可靠性证书

  • 通配符证书 (*.example.com)

  • 使用者备用名称 (SAN) 证书 (example.comexample.net)

证书到期日期和续订

如果您使用来自第三方证书颁发机构 (CA) 的证书,则您负责监控证书到期日期和续订 SSL/TLS 证书(您将这些证书导入到 AWS Certificate Manager (ACM) 或上传到 AWS Identity and Access Management 证书存储)。

如果您使用 ACM 提供的证书,则 ACM 为您管理证书续订。有关更多信息,请参阅 AWS Certificate Manager 用户指南 中的托管续订

CloudFront 分配和证书中的域名

在使用自定义源时,源上的 SSL/TLS 证书在“公用名”字段中包含域名,并在“使用者备用名称”字段中可能包含更多域名。(CloudFront 支持证书域名中使用通配符。)

重要

在将备用该域名添加到分配时,CloudFront 会检查备用域名是否涵盖在您附加的证书中。证书必须在其“使用者备用名称”(SAN) 字段中涵盖备用域名,方式包括:完全匹配域名,或在所添加的备用域名的同一级别上包括一个通配符。

有关更多信息,请参阅 使用备用域名的要求

证书中的其中一个域名必须与您为“源域名”指定的域名匹配。如果没有任何域名匹配,CloudFront 将返回 HTTP 状态代码 502 (Bad Gateway) 到查看器。

最低 SSL 协议版本

如果您使用的是专用 IP 地址,则您可以通过选择安全策略,为查看器和 CloudFront 之间的连接选择最低 SSL 协议版本。

有关更多信息,请参阅您创建或更新分配时指定的值主题中的安全策略

支持的 HTTP 版本

如果将一个证书与多个 CloudFront 相分配关联,则与证书关联的所有分配都必须在支持的 HTTP 版本中使用相同的选项。您在创建或更新 CloudFront 分配时指定该选项。