未能阅读CA证书(GetCertificatechain不会返回完整的链)



我正在使用下面的方法读取证书。

    KeyStore ks = KeyStore.getInstance("pkcs12");
    ks.load(in, password);
    String alias = ks.aliases().nextElement();
    Certificate[] chain = ks.getCertificateChain(alias);
    ...

此方法非常有用,但是我在证书中遇到了一个问题,该证书不会加载证书的完整字符串。

示例1:阅读证书1时,以下语句返回4个字符串

示例2:阅读证书2时,下面的语句仅返回一个字符串

有人知道会发生什么吗?

编辑

试图更好地解释,该证书用于连接到WS。在通信过程中,WS返回以下拒绝连接已关闭:javax.net.ssl.sslhandshakeexception:接收致命警报:UNKNOWN_CA与此WS的连接需要完整的认证链展示。

如下所述,证书显示了Java中的故障,但它在.NET中完美工作,正确显示认证链

根据API文档:

返回: 证书链(首先使用用户的证书订购,然后是零或更多证书授权机构(,或者如果给定的别名不存在或不包含证书链

,则为null

这意味着,链条中没有更多证书(自签名证书(或所需的链元素不包含在PKCS#12消息中,也无法通过其他来源获得。

相关内容

  • 没有找到相关文章

最新更新