如何在不同的账户或区域中安装 AWS Private CA 根和从属 CA?

2 分钟阅读
0

我想在不同的 AWS 账户或 AWS 区域中安装 AWS Private Certificate Authority 根和从属 CA 证书。

简短描述

您可以使用 AWS Private CA 托管私有根 CA 或私有从属 CA 。您可以使用 AWS 管理控制台创建和安装 AWS Private CA 托管的私有根 CA 或从属 CA 证书。但是,私有根 CA 和从属 CA 必须位于同一个账户和区域中。

要在不同的账户或区域中安装证书,必须使用 AWS 命令行界面 (AWS CLI) 或 API。这是因为您无法使用 AWS 管理控制台在不同的账户或区域中安装证书。

**注意:**如果在运行 AWS CLI 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

解决方法

注意:

  • 以下示例假设您在 region1创建了 Private CA
  • 该示例使用 CA 类型作为私有根 CA。
  • 要使用 SDK 进行 API 调用,请参阅 AWS Private CA API 参考
  • region1region2 替换为您的区域。

在不同的账户或区域中创建私有从属 CA

使用 AWS 管理控制台AWS CLI 创建从属 CA。

以下示例使用 region1 创建私有根 CA。该示例使用 region1 中的私有根 CA 来颁发 region2 中的私有从属 CA。

为私有根 CA 安装 CA 证书

使用 AWS 管理控制台或 AWS CLI 安装私有根 CA 证书

从从属 CA 获取 CSR

要从从属 CA 获取证书签名请求 (CSR),请运行 AWS CLI 命令 get-certificate-authority-csr

$ aws acm-pca get-certificate-authority-csr \
     --certificate-authority-arn arn:aws:acm-pca:region2:account2:certificate-authority/SUB_CA_ID \
     --output text \
     --region region2 > sub_ca.csr

使用 region1 中的私有根 CA 颁发私有从属 CA 证书

使用私有根 CA 签署 CSR,然后使用私有根 CA 颁发从属 CA 证书。

运行 AWS CLI 命令 issue-certificate

$ aws acm-pca issue-certificate \
     --certificate-authority-arn arn:aws:acm-pca:region1:account1:certificate-authority/ROOT_CA_ID \
     --csr fileb://sub_ca.csr \
     --signing-algorithm SHA256WITHRSA \
     --template-arn arn:aws:acm-pca:::template/subordinateCAcertificate_PathLen0/V1 \
     --validity Value=1095,Type=DAYS \
     --region region1

**注意:**前面的模板只能颁发终端实体证书,因为该模板的路径长度为 0。有关所有 AWS Private CA 支持的模板类型的列表,请参阅了解证书模板

从 region1 中的私有根 CA 获取从属 CA 证书

  1. 运行 AWS CLI 命令 get-certificate

    $ aws acm-pca get-certificate \
         --certificate-authority-arn arn:aws:acm-pca:region1:account1:certificate-authority/ROOT_CA_ID \
         --certificate-arn arn:aws:acm-pca:region1:account1:certificate-authority/ROOT_CA_ID/certificate/SUB_CERTIFICATE_ID \
         --output text \
         --region region1 > sub_ca_cert.pem

    sub_ca_cert.pem 文件示例:

    -----BEGIN CERTIFICATE-----
        .....Content of your subordinate CA certificate......
        -----END CERTIFICATE-----    -----BEGIN CERTIFICATE-----
        .....Content of your parent Root CA certificate (Chain)......
        -----END CERTIFICATE-----
  2. -----BEGIN CERTIFICATE----------END CERTIFICATE----- 之间的第一个文本块是从属 CA 证书的主体。将此文本块输入到新文件中,然后将该文件另存为 sub_ca_cert_body.pem
    **注意:**您还可以使用命令行 JSON 处理器 jq 将证书和证书链解析为自己的文件。有关如何使用 jq 和 get-certificate AWS CLI 命令的详细信息,请参阅使用 APIPassthrough 模板颁发带有自定义主题名称的证书

  3. -----BEGIN CERTIFICATE----------END CERTIFICATE----- 之间的第二个文本块是从属 CA 证书的证书链。证书链包含颁发私有根 CA 的证书。将此文本块输入到新文件中,然后将该文件另存为 sub_ca_cert_chain.pem

在 region2 中安装从属 CA 证书

运行 AWS CLI 命令 import-certificate-authority-certificate

$ aws acm-pca import-certificate-authority-certificate \
     --certificate-authority-arn arn:aws:acm-pca:region2:account2:certificate-authority/SUB_CA_ID \
     --certificate fileb://sub_ca_cert_body.pem \
     --certificate-chain fileb://sub_ca_cert_chain.pem \
     --region region2

从属 CA 证书安装现已完成,您可以在不同的账户和区域中颁发私有终端实体证书

相关信息

规划韧性

为根 CA 提供自己的 AWS 账户

AWS 官方
AWS 官方已更新 1 年前