当我在 AWS Private CA 控制台中安装从属 CA 证书时,为什么看不到我的共享 CA?
我无法在 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 控制台
完成以下步骤:
- 打开 AWS Private CA 控制台。
- 选择您的从属 CA。
- 选择 Actions(操作),然后选择 Install CA Certificate(安装 CA 证书)。
- 要获取 CSR,请选择 External private CA(外部私有 CA)。CSR 是位于 BEGIN CERTIFICATE REQUEST 和 END CERTIFICATE REQUEST 之间的文本。
- 将 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 控制台
完成以下步骤:
- 打开 AWS Private CA 控制台。
- 选择您的从属 CA。
- 选择 Actions(操作),然后选择 Install CA Certificate(安装 CA 证书)。
- 选择 External private CA(外部私有 CA)。
- 在 Import a signed certificate authority (CA)(导入签名证书颁发机构 (CA))下,输入证书正文和证书链值。
从属 CA 的状态现在为 Active(有效)。
相关内容
- AWS 官方已更新 2 年前
- AWS 官方已更新 3 个月前
- AWS 官方已更新 1 年前
- AWS 官方已更新 7 个月前