如何在 ACM-PCA 有效期小于 13 个月时使用 ACM 控制台请求私有证书

上次更新时间:2019 年 10 月 31 日

我请求 AWS Certificate Manager (ACM) 私有证书,但收到了“失败”错误或证书状态为“失败”。如何解决此问题?

简短描述

ACM 证书的有效期为 13 个月。如果指定的有效期超过 CA 有效期限,ACM 私有 CA 将不能颁发私有证书,。

解决方法

从一个有效期超过 13 个月的 ACM 私有 CA 生成新的私有证书。然后获取该私有证书的正文和链,然后导入 ACM。

重要提示:开始之前,您必须已经安装配置了 AWS CLI。

1.    使用 issue-certificate 命令从一个有效期超过 13 个月的 CA 颁发私有证书,与以下类似:

aws acm-pca issue-certificate --certificate-authority-arn arn:aws:acm-pca:us-west-2:123456789012:certificate-authority/12345678-1234-1234-1234-123456789012 --csr file://C:\cert_1.csr --signing-algorithm "SHA256WITHRSA" --validity Value=365,Type="DAYS" --idempotency-token 1234

此例中使用的期限为 365 天,因为根 CA 的有效期必须为一年或以上。使用与您的根 CA 相同的有效期。

2.    使用 get-certificate 命令以获取私有证书的正文和链,与以下类似:

aws acm-pca get-certificate \
--certificate-authority-arn arn:aws:acm-pca:region:account:\
certificate-authority/12345678-1234-1234-1234-123456789012 \
--certificate-arn arn:aws:acm-pca:region:account:\
certificate-authority/12345678-1234-1234-1234-123456789012/\
certificate/6707447683a9b7f4055627ffd55cebcc \
--output text

get-certificate 命令将会输出采用 base64 编码的 PEM 格式证书和证书链,与以下类似:

-----BEGIN CERTIFICATE-----
...base64-encoded certificate...
-----END CERTIFICATE----
-----BEGIN CERTIFICATE-----
...base64-encoded certificate...
-----END CERTIFICATE----
-----BEGIN CERTIFICATE-----
...base64-encoded certificate...
-----END CERTIFICATE----

使用以下命令将证书正文和证书链保存为 .pem 文件:

证书链:

aws acm-pca get-certificate --certificate-authority-arn  arn:aws:acm-pca:Region:Account:certificate-authority/12345678-1234-1234-1234-123456789012 --certificate-arn arn:aws:acm-pca:Region:Account:certificate-authority/12345678-1234-1234-1234-123456789012/certificate/66506378eb4e296c59b41bbb7b8dd068 --output text --query CertificateChain > certchain.pem

证书正文:

aws acm-pca get-certificate --certificate-authority-arn  arn:aws:acm-pca:Region:Account:certificate-authority/12345678-1234-1234-1234-123456789012 --certificate-arn arn:aws:acm-pca:Region:Account:certificate-authority/12345678-1234-1234-1234-123456789012/certificate/66506378eb4e296c59b41bbb7b8dd068 --output text --query Certificate > certfile.pem

3.    然后使用 import-certificate 命令,遵循将证书导入到 AWS Certificate Manager 中的说明操作,与以下类似:

注意:请将 certfile.pemcertchain.pemPrivateKey.pem 替换为您的文件名。

aws acm import-certificate --certificate file://certfile.pem --certificate-chain file://certchain.pem --private-key file://PrivateKey.pem

这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?