无法读取CA证书(GetCertificateChain不返回完整链)

时间:2017-04-17 13:22:34

标签: java certificate x509certificate keychain pkcs#12

我使用以下方法阅读证书。

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

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

例如: When reading certificate 1 the statement below returns 4 strings

例如2: When reading certificate 2 the statement below returns only one string

有没有人知道可能会发生什么?

修改

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

如下所述,证书显示JAVA失败,但它在.NET中完美运行,正确显示证书链

1 个答案:

答案 0 :(得分:0)

根据API documentation

  

<强>返回:   证书链(首先按用户证书排序,后跟零个或多个证书颁发机构),如果给定别名不存在或不包含证书链,则为null

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