当我在 AWS Private CA 控制台中安装从属 CA 证书时,为什么看不到我的共享 CA?

3 分钟阅读
0

我无法在 AWS Private CA 控制台中查看共享的 AWS Private Certificate Authority。或者,当我安装从属 CA(subordinate certificate authority,证书颁发机构)时,会收到以下错误消息: “找不到合适的私有 CA”。

解决方法

要在 AWS Private CA 控制台中查找共享的 AWS Private CA,请签署 AWS Private CA 的 CSR(certificate signing request,证书签名请求)。然后,将签名的 CA 证书导入 AWS Private CA。

此解决方法使用以下配置:

  • AWS 账户 A 拥有一个私有 CA (PCA-A)。
  • AWS 账户 B 拥有另一个私有 CA (PCA-B)。
  • PCA-A 是 PCA-B 的父 CA。
  • 账户 A 使用 AWS Resource Access Manager (AWS RAM) 与账户 B 共享 PCA-A。
  • 账户 B 设置了 PCA-B。

从 AWS Private CA 获取 CSR

要从 AWS Private CA 获取 CSR,请使用 AWS 命令行界面 (AWS CLI) 或 AWS Private CA 控制台。

AWS CLI

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

运行 get-certificate-authority-csr 命令:

$ aws acm-pca get-certificate-authority-csr \
--certificate-authority ${ARN_PCA_B} \
--output text \
--no-cli-pager

**注意:**将 ${ARN_PCA_B} 替换为您的证书的 ARN。

AWS Private CA 控制台

完成以下步骤:

  1. 打开 AWS Private CA 控制台
  2. 选择您的从属 CA。
  3. 选择 Actions(操作),然后选择 Install CA Certificate(安装 CA 证书)。
  4. 要获取 CSR,请选择 External private CA(外部私有 CA)。CSR 是位于 BEGIN CERTIFICATE REQUESTEND CERTIFICATE REQUEST 之间的文本。
  5. 将 CSR 另存为文本文件 (csr.txt)。

使用父 CA 签署 CSR 以创建 CA 证书

使用您的父 CA 签署私有 CA 的 CSR。您必须指定一个模板。如果您未指定模板,则会获得 CA 无法使用的 EE 证书 (CA:FALSE)。有关更多信息,请参阅了解证书模板

要签署 CA:TRUE 的证书,请为从属 CA 指定模板,然后运行以下命令:

$ ARN_CA_TEMPLATE=arn:aws:acm-pca:::template/SubordinateCACertificate_PathLen0/V1

$ aws acm-pca issue-certificate \
--certificate-authority-arn ${ARN_PCA_A} \
--csr fileb://csr.txt \
--signing-algorithm "SHA256WITHRSA" \
--validity Value=1825,Type="DAYS" \
--template-arn ${ARN_CA_TEMPLATE}

在前面的命令中,请将以下值替换为您的值:

  • arn:aws:acm-pca:::template/SubordinateCACertificate_PathLen0/V1 替换为您的 CA 模板。
  • ${ARN_PCA_A} 替换为父 CA 的 ARN。
  • csr.txt 替换为您的 CSR 文本文件。
    **注意:**如果您使用 AWS CLI 版本 1.6.2 或更早版本,请在录入输入文件时使用 file:// 前缀。
  • SHA256WITHRSA 替换为您的签名算法。
  • 1825 替换为您希望证书有效的天数。
  • ${ARN_CA_TEMPLATE} 替换为您的模板 ARN。

**注意:**要使用账户 B 签署 CSR,您可能需要额外的权限。使用账户 A 的 AWS RAM 托管权限来添加 AWSRAMSubordinateCACertificatePathLen0IssuanceCertificateAuthority

签署 CSR 后,您将收到以下回复:

{
    "CertificateArn": "${ARN_PCA_A}/certificate/${SERIAL_of_Cert}"
}

记下签名的 CA 证书的 ARN,以便在下一步中使用。

获取 CA 证书

运行以下命令:

$ aws acm-pca get-certificate \
--certificate-authority-arn ${ARN_PCA_A} \
--certificate-arn ${ARN_PCA_A}/certificate/${SERIAL_of_Cert} \
--output text \
--no-cli-pager

**注意:**将 $(ARN_PCA_A} 替换为您的父 CA 的 ARN,将 ${ARN_PCA_A}/certificate/${SERIAL-of-Cert} 替换为已签名的 CA 证书的 ARN。

您将收到以下证书正文和证书链:

-----BEGIN CERTIFICATE-----
MIIDMDCCAhigAwIBAgIRAOn36lnqs4DTjbdZK3GoRLwwDQYJKoZIhvcNAQELBQAw
IDEeMBwGA1UEAwwVbXktUk9PVC1DQS0yMDI0LTA1LTExMB4XDTI0MDUxMTA1MjMz
N1oXDTI0MDUxNzA2MjMzN1owHzEdMBsGA1UEAwwUbXktU1VCLUNBLTIwMjQtMDUt
(SNIP)
q02OPtAOrFyWSdrc+5LMZaZzeo6xe0Mw2mJHU8FKl66V2CE+MBbUdwqWN1kOWdTs
U+FhS5IV4KeST0X+lfYh3SkR+0dZBU5arV13w5MATgEYc1D9GajC25MT7Zy4t/NP
zddAJA==
-----END CERTIFICATE----- -----BEGIN CERTIFICATE-----
MIIDDTCCAfWgAwIBAgIRAMQmowipJbQz3jok7kFkPSswDQYJKoZIhvcNAQELBQAw
IDEeMBwGA1UEAwwVbXktUk9PVC1DQS0yMDI0LTA1LTExMB4XDTI0MDUxMTA1MTkx
OVoXDTI0MDUxODA2MTkxOVowIDEeMBwGA1UEAwwVbXktUk9PVC1DQS0yMDI0LTA1
(SNIP)
2wZ6JqUvN/FyWVKTfyNay/KbQkYQZrclrb7N+zmOJ4LTQnI2firIDYqcqmduYuX9
U8F3MFXrVJFECyn5t+4Qxc/BWJPVAoHnEns+jL5tOJfRKblKHs9VAe02gUcr5/p3
qSy6CwOSAA6fkmZCkVjVvYo=
-----END CERTIFICATE-----

证书正文位于第一个 BEGIN CERTIFICATE 和第一个 END CERTIFICATE 之间。证书链位于第二个 BEGIN CERTIFICATE 和第二个 END CERTIFICATE 之间。将证书正文另存为名为 cert.txt 的文本文件。将证书链另存为名为 cert_chain.txt 的文本文件。

将签名的 CA 证书和证书链导入并安装到 CA

要安装已签名的证书,您可以使用 AWS CLI 或 AWS Private CA 控制台。

AWS CLI

运行以下命令并附上证书正文和证书链:

$ aws acm-pca import-certificate-authority-certificate \
--certificate-authority-arn ${ARN_PCA_B} \
--certificate fileb://cert.txt \
--certificate-chain fileb://cert_chain.txt

**注意:**将 ${ARN_PCA_B} 替换为您的私有 CA 的 ARN。

AWS Private CA 控制台

完成以下步骤:

  1. 打开 AWS Private CA 控制台
  2. 选择您的从属 CA。
  3. 选择 Actions(操作),然后选择 Install CA Certificate(安装 CA 证书)。
  4. 选择 External private CA(外部私有 CA)。
  5. Import a signed certificate authority (CA)(导入签名证书颁发机构 (CA))下,输入证书正文和证书链值。

从属 CA 的状态现在为 Active(有效)。

AWS 官方
AWS 官方已更新 6 个月前