如果您在验证 PEM 格式的证书时遇到错误,请在此处查找相关错误消息,以了解更多信息。

以下是可能会产生错误的情景列表。

错误

问题

无效的 PEM 格式。可能是由于错误的 BEGIN 格式所致。请参阅日志了解更多详细信息 (Invalid PEM format. Could be due to wrong BEGIN format. See log for more details)。

PrivateKey BEGIN 证书无效。

无效的 PEM 格式。异常消息: -----未找到 END RSA 私钥。请参阅日志了解更多详细信息 (Invalid PEM format. Exception message: -----END RSA PRIVATE KEY not found. See log for more details)。

PrivateKey END 证书无效。

无效的 PEM 格式。异常消息: 创建 RSA 私钥 java.lang.IllegalArgumentException 时出现问题: 从 byte[] 构建序列失败: 损坏的流 - 找到超出范围的长度。请参阅日志了解更多详细信息 (Invalid PEM format. Exception message: problem creating RSA private key: java.lang.IllegalArgumentException: failed to construct sequence from byte[]: corrupted stream - out of bounds length found. See log for more details)。

证书中的 PrivateKey 已损坏。

未能从 PEM 字符串中解析证书。请参阅日志了解更多详细信息 (Failed to parse certificates from PEM string. See log for more details)。

PublicKey BEGIN 证书无效。

遇到格式错误的 PEM 数据。请参阅日志了解更多详细信息 (Malformed PEM data encountered. See log for more details)。

PublicKey END 证书无效。

遇到格式错误的 PEM 数据。请参阅日志了解更多详细信息 (Malformed PEM data encountered. See log for more details)。

证书中的 PublicKey 已损坏。

没有目标/最终证书可用于构建链接 (There are no target/end certificates to build the chaining)。

没有目标/最终证书。

无法构建证书链路径,所有目标证书都无效。可能缺少中间/根证书 (Not able to build cert chain path, all target certs are invalid. May be missing an intermediate/root certificates)。

没有可构建的证书链。

不明确的错误: 发现多个证书链,不确定该返回哪一个 (Ambiguous Error: Found more than one cert chain not sure which one to return)

存在多个证书链。

无法构建证书链路径,CertificateExpiredException: 证书已于 20171206054737GMT+00:00 过期。请参阅日志了解更多详细信息 (Not able to build cert chain path, CertificateExpiredException: certificate expired on 20171206054737GMT+00:00. See log for more details)。

证书已过期。

上载 PEM 格式的证书时显示错误消息“在流中检测到意外数据”(Unexpected data detected in stream)。

链证书中的叶证书和中间证书之间缺少空行或其他属性。在叶证书和中间证书之间添加一个空行可解决此问题。

图 1. 示例