

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

# 为以下各项设置 CRL AWS 私有 CA
<a name="crl-planning"></a>

在将证书吊销列表 (CRL) 配置为 C [A 创建过程](create-CA.md)的一部分之前，可能需要事先进行一些设置。本节说明在创建附有 CRL 的 CA 之前应了解的先决条件和选项。

有关使用在线证书状态协议（OCSP）作为 CRL 的备选或补充的信息，请参阅 [](create-CA.md#PcaCreateRevocation) 和 [自定义 OCSP 网址 AWS 私有 CA](ocsp-customize.md)。

**Topics**
+ [CRL 类型](#crl-type)
+ [CRL 结构](#crl-structure)
+ [亚马逊 S3 CRLs 中的访问策略](#s3-policies)
+ [使用启用 S3 阻止公共访问 (BPA) CloudFront](#s3-bpa)
+ [确定 CRL 分发点 (CDP) URI](#crl-url)
+ [](#crl-ipv6)

## CRL 类型
<a name="crl-type"></a>
+  **完成**-默认设置。 AWS 私有 CA 为 CA 颁发的所有已被吊销的未过期证书维护一个未分区的 CRL 文件。[根据 RFC 5280 中的定义， AWS 私有 CA 颁发的每个证书都通过其 CRL 分发点 (CDP) 扩展绑定到特定 CRL。](https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.9)启用完整 CRL 后，每个 CA 最多可以有 100 万个私有证书。有关更多信息，请参阅[AWS 私有 CA 配额](https://docs.aws.amazon.com/general/latest/gr/pca.html#limits_pca)。
+  **已分区**-与完整版相比 CRLs，分区可以 CRLs 显著增加您的私有 CA 可以颁发的证书数量，并使您不必频繁轮换。 CAs
**重要**  
使用分区时 CRLs，必须验证 CRL 的关联颁发分发点 (IDP) URI 是否与证书的 CDP URI 相匹配，以确保已获取正确的 CRL。 AWS 私有 CA 将 IDP 扩展标记为关键，您的客户必须能够处理该扩展。

## CRL 结构
<a name="crl-structure"></a>

每个 CRL 是一个 DER 编码文件。要下载文件并使用 [OpenSSL](https://www.openssl.org/) 进行查看，请使用类似如下的命令：

```
openssl crl -inform DER -in path-to-crl-file -text -noout
```

CRLs 格式如下：

```
Certificate Revocation List (CRL):
		        Version 2 (0x1)
		    Signature Algorithm: sha256WithRSAEncryption
		        Issuer: /C=US/ST=WA/L=Seattle/O=Example Company CA/OU=Corporate/CN=www.example.com
		        Last Update: Feb 26 19:28:25 2018 GMT
		        Next Update: Feb 26 20:28:25 2019 GMT
		        CRL extensions:
		            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 CRL Number:
		                1519676905984
		Revoked Certificates:
		    Serial Number: E8CBD2BEDB122329F97706BCFEC990F8
		        Revocation Date: Feb 26 20:00:36 2018 GMT
		        CRL entry extensions:
		            X509v3 CRL Reason Code:
		                Key Compromise
		    Serial Number: F7D7A3FD88B82C6776483467BBF0B38C
		        Revocation Date: Jan 30 21:21:31 2018 GMT
		        CRL entry extensions:
		            X509v3 CRL Reason Code:
		                Key Compromise
		    Signature Algorithm: sha256WithRSAEncryption
		         82:9a:40:76:86:a5:f5:4e:1e:43:e2:ea:83:ac:89:07:49:bf:
		         c2:fd:45:7d:15:d0:76:fe:64:ce:7b:3d:bb:4c:a0:6c:4b:4f:
		         9e:1d:27:f8:69:5e:d1:93:5b:95:da:78:50:6d:a8:59:bb:6f:
		         49:9b:04:fa:38:f2:fc:4c:0d:97:ac:02:51:26:7d:3e:fe:a6:
		         c6:83:34:b4:84:0b:5d:b1:c4:25:2f:66:0a:2e:30:f6:52:88:
		         e8:d2:05:78:84:09:01:e8:9d:c2:9e:b5:83:bd:8a:3a:e4:94:
		         62:ed:92:e0:be:ea:d2:59:5b:c7:c3:61:35:dc:a9:98:9d:80:
		         1c:2a:f7:23:9b:fe:ad:6f:16:7e:22:09:9a:79:8f:44:69:89:
		         2a:78:ae:92:a4:32:46:8d:76:ee:68:25:63:5c:bd:41:a5:5a:
		         57:18:d7:71:35:85:5c:cd:20:28:c6:d5:59:88:47:c9:36:44:
		         53:55:28:4d:6b:f8:6a:00:eb:b4:62:de:15:56:c8:9c:45:d7:
		         83:83:07:21:84:b4:eb:0b:23:f2:61:dd:95:03:02:df:0d:0f:
		         97:32:e0:9d:38:de:7c:15:e4:36:66:7a:18:da:ce:a3:34:94:
		         58:a6:5d:5c:04:90:35:f1:8b:55:a9:3c:dd:72:a2:d7:5f:73:
		         5a:2c:88:85
```

**注意**  
只有在颁发了引用它的证书时，CRL 才会存放到 Amazon S3 中。在此之前，Amazon S3 桶中只有显示一个 `acm-pca-permission-test-key` 文件。

## 亚马逊 S3 CRLs 中的访问策略
<a name="s3-policies"></a>

如果您计划创建 CRL，则需要准备一个 Amazon S3 存储桶来存储它。 AWS 私有 CA 自动将 CRL 存入您指定的 Amazon S3 存储桶中，并定期对其进行更新。有关更多信息，请参阅[创建存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket.html)。

您的 S3 桶必须通过附加的 IAM 权限策略进行保护。授权用户和服务委托人需要`Put`权限 AWS 私有 CA 才能在存储桶中放置对象，以及检索对象的`Get`权限。

**注意**  
IAM 策略配置取决于 AWS 区域 所涉及的内容。区域分为两类：  
**默认启用区域**-默认情况下为所有区域*启用的*区域。 AWS 账户
**默认禁用的区域** – 默认情况下*禁用*但可以由客户手动启用的区域。
有关更多信息以及默认禁用区域的列表，请参阅[管理 AWS 区域](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html)。有关在 IAM 上下文中对服务主体的讨论，请参阅[选择加入区域的AWS 服务主体](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services-in-opt-in-regions)。  
当您配置 CRLs 为证书吊销方法时， AWS 私有 CA 会创建 CRL 并将其发布到 S3 存储桶。S3 存储桶需要一个允许 AWS 私有 CA 服务委托人写入存储桶的 IAM 策略。服务主体的名称因所使用的区域而有所不同，且并非支持所有可能性。  


****  

| PCA | S3 | 服务主体 | 
| --- | --- | --- | 
|  两者位于同一区域  |  `acm-pca.amazonaws.com`  | 
|  已启用  |  已启用  |  `acm-pca.amazonaws.com`  | 
| 已禁用 | 已启用 |  `acm-pca.Region.amazonaws.com`  | 
| 已启用 | 已禁用 |  不支持  | 

默认策略对 CA 不施加任何 `SourceArn` 限制。我们建议您采用宽松程度较低的政策，例如以下政策，该政策限制对特定 AWS 账户和特定私有 CA 的访问权限。或者，您可以使用 a [ws: SourceOrg ID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceorgid) 条件键来限制对中特定组织的访问权限。 AWS Organizations有关存储桶策略的更多信息，请参阅 [Amazon 简单存储服务的存储桶策略](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html)。

如果您选择允许默认策略，以后可以随时[修改](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html)。

## 使用启用 S3 阻止公共访问 (BPA) CloudFront
<a name="s3-bpa"></a>

默认情况下，新 Amazon S3 桶是在激活屏蔽公共访问权限（BPA）功能的情况下配置的。BPA 包含在 Amazon S3 [安全最佳实践](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html)中，是一组访问控制，客户可以使用这些控制来微调对 S3 桶中对象和整个桶的访问权限。当 BPA 处于活动状态且配置正确时，只有经过授权和身份验证的 AWS 用户才能访问存储桶及其内容。

AWS 建议在所有 S3 存储桶上使用 BPA，以避免敏感信息泄露给潜在的对手。但是，如果您的PKI客户通过公共互联网（即未登录 AWS 帐户）进行检索 CRLs ，则需要进行额外的规划。本节介绍如何使用 Amazon CloudFront（内容分发网络 (CDN)）配置私有 PKI 解决方案，使其 CRLs 无需经过身份验证的客户端访问 S3 存储桶即可提供服务。

**注意**  
使用 CloudFront 会给您的 AWS 账户带来额外费用。有关更多信息，请参阅 [Amazon CloudFront 定价](https://aws.amazon.com/cloudfront/pricing/)。  
如果您选择将 CRL 存储在启用 BPA 的 S3 存储桶中，但不使用 CloudFront，则必须构建另一个 CDN 解决方案，以确保您的 PKI 客户端可以访问您的 CRL。

### 为 BPA CloudFront 做好准备
<a name="set-up-cloudfront"></a>

创建一个可以访问您的私有 S3 存储桶的 CloudFront 分配，并且可以提供 CRLs 给未经身份验证的客户端。

**为 CR CloudFront L 配置发行版**

1. 使用《*Amazon CloudFront 开发者指南*》中[创建分配](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-creating-console.html)中的步骤创建新 CloudFront 分配。

   完成该过程时，请应用以下设置：
   + 在**源域名**中，选择您的 S3 桶。
   + 为**限制存储桶访问**选择**是**。
   + 为**源访问身份**选择**创建新身份**。
   + 在**授予对存储桶的读取权限**下选择**是，更新存储桶策略**。
**注意**  
在此过程中， CloudFront 修改您的存储桶策略以允许其访问存储桶对象。考虑[编辑](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html)此策略，使其仅允许访问 `crl` 文件夹下的对象。

1. 初始化发行版后，在 CloudFront 控制台中找到其域名并将其保存以供下一个步骤使用。
**注意**  
如果您的 S3 存储桶是在 us-east-1 以外的区域新创建的，则当您通过访问已发布的应用程序时，可能会出现 HTTP 307 临时重定向错误。 CloudFront桶的地址可能需要几个小时才能传播。

### 为 BPA 设置 CA
<a name="set-up-CA"></a>

在配置新 CA 时，请将别名添加到您的 CloudFront发行版中。

**为你的 CA 配置别名记录 CloudFront**
+ 使用 [在中创建私有 CA AWS 私有 CA](create-CA.md) 创建您的 CA。

  执行该过程时，撤销文件`revoke_config.txt`应包含以下几行，以指定非公共 CRL 对象并在中提供分发端点的 URL： CloudFront

  ```
  "S3ObjectAcl":"BUCKET_OWNER_FULL_CONTROL",
  	"CustomCname":"abcdef012345.cloudfront.net"
  ```

  之后，当您使用此 CA 颁发证书时，这些证书将包含如下所示的块：

  ```
  X509v3 CRL Distribution Points: 
  	Full Name:
  	URI:http://abcdef012345.cloudfront.net/crl/01234567-89ab-cdef-0123-456789abcdef.crl
  ```

**注意**  
如果您拥有由此 CA 颁发的较旧证书，则他们将无法访问 CRL。

## 确定 CRL 分发点 (CDP) URI
<a name="crl-url"></a>

如果您需要在工作流程中使用 CRL 分发点 (CDP) URI，则可以使用该证书上的 CRL URI 颁发证书，也可以使用以下方法。这仅适用于完整版 CRLs。分区后面 CRLs 会随机附加一个 GUID。

如果您使用 S3 存储桶作为 CA 的 CRL 分发点 (CDP)，则 CDP URI 可以采用以下格式之一。
+ `http://amzn-s3-demo-bucket.s3.region-code.amazonaws.com/crl/CA-ID.crl`
+ `http://s3.region-code.amazonaws.com/amzn-s3-demo-bucket/crl/CA-ID.crl`

如果您为自己的 CA 配置了自定义 CNAME，则 CDP URI 将包含别名记录，例如，`http://alternative.example.com/crl/CA-ID.crl`

## 
<a name="crl-ipv6"></a>

 默认情况下，使用 IPv4仅限`amazonaws.com`区域的终端节点编 AWS 私有 CA 写 CDP 扩展。要 CRLs 重新使用 IPv6，请执行以下步骤之一，以便 CDPs 在编写时指向 [S3 的双栈端](https://docs.aws.amazon.com/AmazonS3/latest/API/dual-stack-endpoints.html)点： URLs 
+ 将您的 [CRL 自定义名称](create-CA.md#PcaCreateRevocation)设置为 S3 双堆栈终端节点域。例如，`bucketname.s3.dualstack.region-code.amazonaws.com`
+ 设置你自己的 CNAME DNS 记录，指向相关的 S3 双栈端点，然后将其用作 CRL 自定义名称