

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

# 什么是 AWS 私有 CA？
<a name="PcaWelcome"></a>

AWS 私有 CA 允许创建私有证书颁发机构 (CA) 层次结构，包括根和下级结构 CAs，而无需运营本地 CA 的投资和维护成本。您的私有 CAs 可以颁发终端实体 X.509 证书，这些证书在以下场景中很有用：
+ 创建加密的 TLS 通信通道 
+ 对用户、计算机、API 终端节点和 IoT 设备进行身份验证
+ 加密签名代码
+ 实施在线证书状态协议 (OCSP) 以获取证书吊销状态

AWS 私有 CA 可以从 AWS 管理控制台、使用 AWS 私有 CA API 或使用 AWS CLI。

**Topics**
+ [的地区可用性 AWS 私有证书颁发机构](#PcaRegions)
+ [与之集成的服务 AWS 私有证书颁发机构](#PcaIntegratedServices)
+ [中支持的加密算法 AWS 私有证书颁发机构](#supported-algorithms)
+ [符合 RFC 5280 的要求 AWS 私有证书颁发机构](#RFC-compliance)
+ [的定价 AWS 私有证书颁发机构](#PcaPricing)
+ [的术语和概念 AWS 私有 CA](PcaTerms.md)

## 的地区可用性 AWS 私有证书颁发机构
<a name="PcaRegions"></a>

 

与大多数 AWS 资源一样，私有证书颁发机构 (CAs) 是区域资源。要 CAs 在多个区域中使用私有功能，您必须在这些区域 CAs 中创建您的。您不能在区域 CAs 之间复制私有内容。访问 *AWS 一般参考* 中的 [AWS 区域和端点](https://docs.aws.amazon.com/general/latest/gr/rande.html#pca_region)或 [AWS 区域表](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)以查看 AWS 私有 CA的区域可用性。

**注意**  
ACM 目前在某些地区可用， AWS 私有 CA 但尚未提供。

## 与之集成的服务 AWS 私有证书颁发机构
<a name="PcaIntegratedServices"></a>

如果您使用 AWS Certificate Manager 请求私有证书，则可以将该证书与任何与 ACM 集成的服务相关联。这既适用于链接到 AWS 私有 CA 根的证书，也适用于链接到外部根的证书。有关更多信息，请参阅《 AWS Certificate Manager 用户指南》中的[集成服务](https://docs.aws.amazon.com/acm/latest/userguide/acm-services.html)。

您还可以将私有 CAs 集成到亚马逊 Elastic Kubernetes Service 中，以便在 Kubernetes 集群内提供证书颁发服务。有关更多信息，请参阅 [使用 Kubernetes 保护 AWS 私有证书颁发机构](PcaKubernetes.md)。

**注意**  
Amazon Elastic Kubernetes Service 并非 ACM 集成服务。

如果您使用 AWS 私有 CA API 或 AWS CLI 颁发证书或从 ACM 导出私有证书，则可以将证书安装在所需的任何地方。

## 中支持的加密算法 AWS 私有证书颁发机构
<a name="supported-algorithms"></a>

AWS 私有 CA 支持以下用于私钥生成和证书签名的加密算法。


**支持的算法**  

| 私有密钥算法 | 签名算法 | 
| --- | --- | 
|  ML\$1DSA\$144 ML\$1DSA\$165 ML\$1DSA\$187 RSA\$12048  RSA\$13072  RSA\$14096 EC\$1prime256v1 EC\$1secp384r1 ec\$1secp521r1 SM2 （仅限中国地区）  | ML\$1DSA\$144ML\$1DSA\$165ML\$1DSA\$187 SHA256WITHRSASHA384WITHRSASHA512WITHRSASHA256WITHECDSA SHA384WITHECDSASHA512WITHECDSASM3WITHSM2 | 

此列表仅适用于 AWS 私有 CA 通过其控制台、API 或命令行直接颁发的证书。当使用来自的 CA AWS Certificate Manager 颁发证书时 AWS 私有 CA，它支持部分但不是全部算法。有关更多信息，请参阅 AWS Certificate Manager 用户指南中的[申请私有证书](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-private.html)。

**注意**  
对于 RSA 或 ECDSA，指定的签名算法系列必须与 CA 私钥的密钥算法系列相匹配。  
对于 ML-DSA，哈希函数被定义为算法本身的一部分。无法使用 ML-DSA 选择不同的哈希函数。为了保持与的向后兼容性 APIs，密钥算法和签名算法使用相同的值。

## 符合 RFC 5280 的要求 AWS 私有证书颁发机构
<a name="RFC-compliance"></a>

AWS 私有 CA 不强制执行 [RFC 528](https://datatracker.ietf.org/doc/html/rfc5280) 0 中定义的某些限制。相反的情况也是如此：强制实施某些适用于私有 CA 的附加约束。

**强制实施**
+ [“不迟于”日期](https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.5)。根据 [RFC 5280](https://datatracker.ietf.org/doc/html/rfc5280)， AWS 私有 CA 防止颁发 `Not After` 日期晚于颁发 CA 证书的 `Not After` 日期的证书。
+ [基本限制](https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.9)。 AWS 私有 CA 在导入的 CA 证书中强制执行基本限制和路径长度。

  基本约束指示证书所标识的资源是否为 CA 并可以颁发证书。导入到 AWS 私有 CA 的 CA 证书必须包含基本约束扩展，并且该扩展必须标记为 `critical`。除了`critical`旗帜外，还`CA=true`必须设置。 AWS 私有 CA 由于以下原因而失败并出现验证异常，从而强制执行基本约束：
  + CA 证书中不包含该扩展。
  + 该扩展未标记为 `critical`。

  路径长度 ([pathLenConstraint](PcaTerms.md#terms-pathlength)) 决定了导入的 CA 证书的下游 CAs 可能存在多少从属证书。 AWS 私有 CA 由于以下原因，由于验证异常而失败，从而强制执行路径长度：
  + 导入 CA 证书将违反 CA 证书或链中任何 CA 证书中的路径长度约束。
  + 颁发证书将违反路径长度约束。
+ [名称限制](https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.10)表示一个命名空间，认证路径中后续证书中的所有使用者名称都必须位于该命名空间内。限制适用于主题可分辨名称和主题备用名称。

**未强制实施**
+ [证书政策](https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.4)。证书政策规定了 CA 颁发证书的条件。
+ [禁止任何政策](https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.14)。用于颁发给的证书CAs。
+ [发行人备用名称](https://datatracker.ietf.org/doc/html/rfc5280#section-section-4.2.1.7)。允许将其他身份与 CA 证书的颁发者相关联。
+ [政策限制](https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.11)。这些约束限制 CA 颁发从属 CA 证书的能力。
+ [策略映射](https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.5)。用于 CA 证书。列出一对或多对 OIDs；每对包括 a issuerDomainPolicy 和 a subjectDomainPolicy。
+ [主题目录属性](https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.8)。用于传达拍摄对象的识别属性。
+ [主题信息访问](https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.2.2)。如何访问包含扩展程序的证书主体的信息和服务。
+ [主题密钥标识符 (SKI)](https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.2) 和[授权密钥标识符 (AKI)](https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.1)。RFC 需要 CA 证书才能包含 SKI 扩展。CA 颁发的证书必须包含与 CA 证书的 SKI 匹配的 AKI 扩展名。 AWS 不强制执行这些要求。如果您的 CA 证书不包含 SKI，则颁发的终端实体或从属 CA 证书 AKI 将改为颁发者公有密钥的 SHA-1 哈希。
+ [SubjectPublicKeyInfo](https://datatracker.ietf.org/doc/html/rfc5280#section-4.1)和[主题备用名称 (SAN)](https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.6)。颁发证书时，无需执行验证，即可从提供的 CSR 中 AWS 私有 CA 复制 SubjectPublicKeyInfo 和 SAN 扩展。

## 的定价 AWS 私有证书颁发机构
<a name="PcaPricing"></a>

从您创建私有 CA 的时间开始，每月将为每个私有 CA 向您的账户收取费用。您还需要为您颁发的每个证书付费。此费用包括您从 ACM 导出的证书和通过 AWS 私有 CA API 或 AWS 私有 CA CLI 创建的证书。删除私有 CA 后，您无需再为其付费。但是，如果您还原私有 CA，则需支付删除到还原期间内的费用。您无法访问其私有密钥的私有证书是免费的。其中包括用于[集成服务](https://docs.aws.amazon.com/acm/latest/userguide/acm-services.html)（例如 Elastic Load Balancing 和 API Gateway）的证书。 CloudFront

有关最新的定 AWS 私有 CA 价信息，请参阅[AWS 私有证书颁发机构 定价](https://aws.amazon.com/private-ca/pricing/)。您也可以使用定 [AWS 价计算器](https://calculator.aws/#/createCalculator/certificateManager)来估算成本。

# 的术语和概念 AWS 私有 CA
<a name="PcaTerms"></a>

以下术语和概念可以在您使用时为您提供帮助 AWS 私有证书颁发机构。

**Topics**
+ [信任](#terms-trust)
+ [TLS 服务器证书](#terms-tlscert)
+ [证书签名](#terms-signing)
+ [证书颁发机构](#terms-ca)
+ [根 CA](#terms-rootca)
+ [CA 证书](#terms-ca-cert)
+ [根 CA 证书](#terms-root)
+ [终端实体证书](#terms-endentity)
+ [自签名证书](#terms-selfsignedcert)
+ [私有证书](#terms-pca-cert)
+ [证书路径](#terms-certpath)
+ [路径长度约束](#terms-pathlength)

## 信任
<a name="terms-trust"></a>

要让 Web 浏览器信任网站的身份，该浏览器必须能够验证网站的证书。不过，浏览器仅信任称为“CA 根证书”的少量证书。称为证书颁发机构 (CA) 的可信第三方将验证该网站的身份并向网站运营商颁发签名的数字证书。随后，浏览器可以检查数字签名以验证网站的身份。如果验证成功，浏览器会在地址栏中显示一个锁定图标。

## TLS 服务器证书
<a name="terms-tlscert"></a>

HTTPS 事务需要服务器证书来对服务器进行身份验证。服务器证书是 X.509 v3 数据结构，用于将证书中的公有密钥绑定到证书的使用者。TLS 证书由证书颁发机构（CA）签名。该证书包含服务器的名称、有效期、公有密钥、签名算法等。

## 证书签名
<a name="terms-signing"></a>

数字签名是证书的已加密哈希。签名用于确认证书数据的完整性。您的私有 CA 使用加密哈希函数（例如可变大小的证书 SHA256 内容）创建签名。此哈希函数会生成一个实际上不可伪造的固定大小的数据字符串。此字符串称为哈希。然后，CA 使用其私有密钥对哈希值进行加密，并将已加密的哈希与证书相连接。

## 证书颁发机构
<a name="terms-ca"></a>

证书颁发机构 (CA) 颁发和 (如有必要) 吊销数字证书。最常见的证书类型基于 ISO X.509 标准。X.509 证书确认证书主题的身份并将该身份绑定到公有密钥。主题可以是用户、应用程序、计算机或其他设备。CA 可以对证书进行签名，方法是对内容进行哈希处理，然后使用与证书中的公有密钥相关的私有密钥对哈希进行加密。需要确认主题的身份的客户端应用程序 (如 Web 浏览器) 使用公有密钥来解密证书签名。然后，它对证书内容进行哈希处理，并将哈希值与已解密的签名进行比较来确定它们是否匹配。有关证书签名的信息，请参阅[证书签名](#terms-signing)。

您可以使用 AWS 私有 CA 创建私有 CA 并使用私有 CA 颁发证书。您的私有 CA 仅颁 SSL/TLS 发私有证书供组织内部使用。有关更多信息，请参阅 [私有证书](#terms-pca-cert)。您的私有 CA 还需要证书，然后才能使用它。有关更多信息，请参阅 [CA 证书](#terms-ca-cert)。

## 根 CA
<a name="terms-rootca"></a>

颁发证书时可依据的加密构建数据块和信任根。它由用于签署（颁发）证书的私有密钥和标识根 CA 并将私有密钥绑定到 CA 名称的根证书组成。根证书将分发到环境中每个实体的信任存储区。管理员构建信任存储库，使其仅 CAs 包含他们信任的存储库。管理员将信任存储区更新或构建到其环境中实体的操作系统、实例和主机映像中。资源尝试相互连接时，它们会检查每个实体提供的证书。客户端检查证书的有效性，以及是否存在从证书到信任存储中安装的根证书的链。如果满足这些条件，资源之间就会完成“握手”。该握手以加密方式证明每个实体彼此的身份，并在它们之间创建加密的通信通道 (TLS/SSL)。

## CA 证书
<a name="terms-ca-cert"></a>

证书颁发机构 (CA) 证书确认 CA 的身份并将它绑定到证书中包含的公有密钥。

您可以使用 AWS 私有 CA 创建私有根 CA 或私有从属 CA 证书。从属 CA 证书由信任链中较高的另一个 CA 证书签名。但是，对于根 CA，证书是自签名的。您还可以建立外部根颁发机构（例如，在本地托管）。然后，您可以使用根颁发机构对 AWS 私有 CA托管的从属根 CA 证书进行签名。

以下示例显示了 AWS 私有 CA X.509 CA 证书中包含的典型字段。请注意，对于 CA 证书，`CA:` 字段中的 `Basic Constraints` 值设置为 `TRUE`。

```
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 4121 (0x1019)
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=US, ST=Washington, L=Seattle, O=Example Company Root CA, OU=Corp, CN=www.example.com/emailAddress=corp@www.example.com
        Validity
            Not Before: Feb 26 20:27:56 2018 GMT
            Not After : Feb 24 20:27:56 2028 GMT
        Subject: C=US, ST=WA, L=Seattle, O=Examples Company Subordinate CA, OU=Corporate Office, CN=www.example.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:c0: ... a3:4a:51
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Key Identifier:
                F8:84:EE:37:21:F2:5E:0B:6C:40:C2:9D:C6:FE:7E:49:53:67:34:D9
            X509v3 Authority Key Identifier:
                keyid:0D:CE:76:F2:E3:3B:93:2D:36:05:41:41:16:36:C8:82:BC:CB:F8:A0

            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Digital Signature, CRL Sign
    Signature Algorithm: sha256WithRSAEncryption
         6:bb:94: ... 80:d8
```

## 根 CA 证书
<a name="terms-root"></a>

证书颁发机构 (CA) 通常存在于一个分层结构中，该分层结构包含多个其他机构，它们之间 CAs 有明确定义的父子关系。子女或下属 CAs 由其父母进行认证 CAs，从而创建证书链。位于层次结构顶部的 CA 称为“根 CA”，而其证书称为“根证书”。此证书通常是自签名的。

## 终端实体证书
<a name="terms-endentity"></a>

终端实体证书可标识服务器、实例、容器或设备等资源。与 CA 证书不同，终端实体证书不能用于颁发证书。终端实体证书的其他常用术语是 “客户端” 或 “叶子” 证书。

## 自签名证书
<a name="terms-selfsignedcert"></a>

由颁发者而不是更高级别 CA 签名的证书。与由 CA 维护的安全根颁发的证书不同，自签名证书充当自己的根，因此其有很大的局限性：这些证书可用于提供在线加密，但不能用于验证身份，并且无法吊销。从安全角度来看，它们是不可接受的。但是，组织仍然使用它们，因为它们易于生成，不需要专业知识或基础设施，而且为许多应用程序所接受。市场上没有针对颁发自签名证书的相应控制体系。使用这些证书的组织会因证书到期产生更大的中断风险，因为它们无法跟踪到期日期。

## 私有证书
<a name="terms-pca-cert"></a>

AWS 私有 CA 证书是可在组织内使用的私有 SSL/TLS 证书，但在公共 Internet 上不受信任。使用这些证书来标识资源，如客户端、服务器、应用程序、服务、设备和用户。在建立安全加密的通信通道时，每个资源都使用证书 (如下所示) 以及加密技术来向另一个资源证明其身份。内部 API 终端节点、Web 服务器、VPN 用户、IoT 设备和许多其他应用程序使用私有证书来建立其安全操作所需的加密的通信通道。默认情况下，私有证书不是公开信任的。内部管理员必须显式配置应用程序才能信任私有证书并分发证书。

```
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            e8:cb:d2:be:db:12:23:29:f9:77:06:bc:fe:c9:90:f8
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=US, ST=WA, L=Seattle, O=Example Company CA, OU=Corporate, CN=www.example.com
        Validity
            Not Before: Feb 26 18:39:57 2018 GMT
            Not After : Feb 26 19:39:57 2019 GMT
        Subject: C=US, ST=Washington, L=Seattle, O=Example Company, OU=Sales, CN=www.example.com/emailAddress=sales@example.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00...c7
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            X509v3 Authority Key Identifier:
                keyid:AA:6E:C1:8A:EC:2F:8F:21:BC:BE:80:3D:C5:65:93:79:99:E7:71:65

            X509v3 Subject Key Identifier:
                C6:6B:3C:6F:0A:49:9E:CC:4B:80:B2:8A:AB:81:22:AB:89:A8:DA:19
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment
            X509v3 Extended Key Usage:
                TLS Web Server Authentication, TLS Web Client Authentication
            X509v3 CRL Distribution Points:

                Full Name:
                  URI:http://NA/crl/12345678-1234-1234-1234-123456789012.crl

    Signature Algorithm: sha256WithRSAEncryption
         58:32:...:53
```

## 证书路径
<a name="terms-certpath"></a>

依赖证书的客户端会验证是否存在从终端实体证书（可能通过中间证书链）到受信任根的路径。该客户端会检查路径上的每个证书是否均有效（未吊销）。它还会检查终端实体证书是否未到期、是否完整（未被篡改或修改），以及是否强制实施了证书中的约束。

## 路径长度约束
<a name="terms-pathlength"></a>

CA 证书*pathLenConstraint*的基本限制设置了其下方链中可能存在的从属 CA 证书的数量。例如，路径长度约束为零的 CA 证书不能有任何从属证书 CAs。路径长度约束为 1 的 CA CAs 下方最多可以有一个从属级别。[RFC 5280](https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.9) 将其定义为 “在有效认证路径中可以跟随此证书的最大 non-self-issued中间证书数量”。路径长度值不包括终端实体证书，尽管关于验证链“长度”或“深度”的非正式语言可能包括它...导致混乱。