我尝试为 AWS 私有证书颁发机构申请新的私有终端实体证书或从属证书颁发机构 (CA),但请求失败了。
简短描述
要解决私有 CA 证书请求失败的问题,请检查以下变量:
- 私有 CA 的 pathLenConstraint 参数
- 私有 CA 的状态
- 私有 CA 的签名算法系列
- 所申请证书的有效期
- AWS Identity and Access Management (IAM) 权限
- AWS 账户
- AWS 私有 CA 异常错误消息
解决方法
私有 CA 的 pathLenConstraint 参数
当从属 CA 的路径长度大于或等于颁发私有 CA 的路径长度时,您会收到以下错误消息:
“CA 路径长度检查失败”
要解决此问题,请为小于私有 CA 路径长度的从属 CA 创建 pathLenConstraint。有关详细信息,请参阅规划 CA 层次结构的结构。
私有 CA 的状态
如果您已使用 IssueCertificate API 在私有 CA 已过期或已删除的情况下颁发新的私有 CA 证书,则会收到以下错误:
“调用 IssueCertificate 操作时出现错误 (InvalidStateException): 证书颁发机构未处于颁发证书的有效状态”
如果签名 CA 被删除,则您仍然可以在 7-30 天的恢复期内恢复私有 CA。如果恢复期已过,则私有 CA 将被永久删除,您无法恢复。
如果签名 CA 已过期,请使用新的到期日期补发 CA 或更换过期的 CA。最佳做法是将过期的 CA 替换为新的 CA。要替换过期的 CA,请创建新的 CA,然后将其链接到同一个父 CA。有关详细信息,请参阅管理 CA 继承。
私有 CA 的签名算法系列
RSA 或 ECDSA 的签名算法系列必须与 CA 私钥的算法系列相匹配。有关详细信息,请参阅 AWS 私有 CA 中支持的加密算法。
所申请证书的有效期
AWS Certificate Manager (ACM) 颁发和管理的私有终端实体证书的有效期为 13 个月(395 天)。当父 CA 的有效期少于 13 个月时,从 ACM 控制台签发的私有终端实体证书请求将失败。您会收到以下错误消息:
“您在请求中指定的 CA 的签名证书已过期。”
**注意:**ACM 无法颁发由私有 CA 在短期模式下签发的证书。
如果签名证书的有效期少于 13 个月,请使用 IssueCertificate API 指定自定义有效期。
当 AWS 私有 CA 尝试颁发有效期大于父 CA 的证书时,您会收到以下错误消息:
“调用 IssueCertificate 操作时出现错误 (ValidationException): 指定的证书有效期超过证书颁发机构有效期”
要解决此问题,请使最终实体证书或子 CA 证书的有效期短于或等于父 CA 的有效期。
有关详细信息,请参阅在 AWS 私有 CA 中更新私有 CA。
IAM 权限
要调用 IssueCertificate 和 RequestCertificate API,请向请求私有 CA 证书的 IAM 身份授予所需的权限。否则,请求将失败并出现 AccessDenied 错误。最佳做法是应用最低权限。有关详细信息,请参阅 AWS 私有 CA 的 IAM。
AWS 账户
当 AWS 私有 CA 尝试从另一个账户颁发 CA 证书时,您会收到与以下内容类似的错误消息:
“调用 IssueCertificate 时出现错误 (AccessDeniedException),因为没有任何基于资源的策略允许 acm-pca:IssueCertificate 操作”
要解决此问题,请将基于资源的策略附加到 CA 证书。您还可以使用 AWS Resource Access Manager (AWS RAM) 与其他账户共享 ACM 私有 CA。有关详细信息,请参阅如何与其他 AWS 账户共享我的 ACM 私有 CA?
AWS 私有 CA 异常错误消息
AWS 私有 CA 可能出于多种原因返回异常错误。要对 AWS 私有 CA 异常错误进行故障排除,请参阅对 AWS 私有 CA 异常消息进行故障排除。
相关信息
如何为我的 AWS 私有 CA 创建 CRL?
如何在不同的账户或 AWS 区域中安装 AWS 私有 CA 根和从属 CA?