如何为我的 ACM PCA 创建证书撤销列表 (CRL)?

上次更新日期:2022 年 6 月 20 日

我尝试为我的 AWS Certificate Manager (ACM) 私有证书颁发机构 (CA) 创建证书撤销列表 (CRL)。我该如何操作?

简短描述

ACM Private CA 将 CRL 放入您指定使用的 Amazon Simple Storage Service(Amazon S3)存储桶中。您的 Amazon S3 存储桶必须通过附加的权限策略进行保护。授权用户和服务主体需要 Put 权限才能允许 ACM Private CA 在存储桶中放置对象,并需要 Get 权限才能检索它们。

有关更多信息,请参阅 Amazon S3 中 CRL 的访问策略

解决方案

按照以下说明创建 Amazon S3 存储桶、Amazon CloudFront 分配,并为 CRL 配置 CA。

注意:

步骤 1:创建启用了 BPA 设置的新 Amazon S3 存储桶

1.    打开 Amazon S3 控制台,然后选择创建存储桶

2.    在存储桶名称中,输入存储桶的名称。

3.    在对象所有权中,选择已启用 ACL,然后选择创建存储桶

4.    在存储桶中,选择您在步骤 3 中创建的存储桶。

5.    选择权限选项卡。

6.    在存储桶策略中,选择编辑

7.    在策略中,复制并粘贴以下策略:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "acm-pca.amazonaws.com"
      },
      "Action": [
        "s3:PutObject",
        "s3:PutObjectAcl",
        "s3:GetBucketAcl",
        "s3:GetBucketLocation"
      ],
      "Resource": [
        "arn:aws:s3:::your-crl-storage-bucket/*",
        "arn:aws:s3:::your-crl-storage-bucket"
      ],
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "account",
          "aws:SourceArn": "arn:partition:acm-pca:region:account:certificate-authority/CA_ID"
        }
      }
    }
  ]
}

注意:将 S3 存储桶名称、账户 ID 和 ACM PCA ARN 替换为变量。

8.    选择保存更改

有关更多信息,请参阅创建存储桶

步骤 2 :创建一个 CloudFront 分配

1.    打开 CloudFront 控制台,然后选择创建分配

2.    在源域中,输入您在之前步骤中创建的存储桶名称。

3.    在 S3 存储桶访问中,选择是,使用 OAI(存储桶可以仅限对 CloudFront 的访问)

4.    在来源访问标识中,选择创建新 OAI,然后选择创建

5.    选择创建分配

有关更多信息,请参阅创建分配

步骤 3:使用 CRL 配置您的 CA

1.    使用 AWS CLI 命令 create-certificate-authority 创建 CA,如下所示:

$ aws acm-pca create-certificate-authority --certificate-authority-configuration "KeyAlgorithm=RSA_2048,SigningAlgorithm=SHA256WITHRSA,Subject={CommonName=s3-bpa}" --certificate-authority-type "ROOT" --revocation-configuration "CrlConfiguration={Enabled=true,S3BucketName=examplebucket,ExpirationInDays=7,S3ObjectAcl=BUCKET_OWNER_FULL_CONTROL}" --region us-east-1

revoke_config.txt 文件包含类似以下内容的撤销信息:

{
  "CrlConfiguration": {
    "Enabled": true,
    "ExpirationInDays": integer,
    "S3BucketName": "string",
    "S3ObjectAcl": "BUCKET_OWNER_FULL_CONTROL"
  }
}

注意:如果您使用 AWS 管理控制台配置了 CRL,则可能会收到“ValidationException(验证异常)”错误。重复步骤 1,使用 AWS CLI 更新 CA 撤销配置

(可选)步骤 4:加密 CRL

您可以在包含 CRL 的 Amazon S3 存储桶上配置自动或自定义加密。有关说明,请参阅加密 CRL