Java 读取CA证书失败(GetCertificateCain不返回完整链)
我正在使用下面的方法读取证书Java 读取CA证书失败(GetCertificateCain不返回完整链),java,certificate,x509certificate,keychain,pkcs#12,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); ... 这个方法非常实用,但是我在一个证书中遇到了一个问题,它没有加载证书的完整字符串 例如1:
KeyStore ks = KeyStore.getInstance("pkcs12");
ks.load(in, password);
String alias = ks.aliases().nextElement();
Certificate[] chain = ks.getCertificateChain(alias);
...
这个方法非常实用,但是我在一个证书中遇到了一个问题,它没有加载证书的完整字符串
例如1:
例如2:
有人知道会发生什么吗
编辑
为了更好地解释,此证书用于连接到WS。在通信过程中,WS返回以下拒绝连接已关闭:javax.net.ssl.SSLHandshakeException:收到致命警报:未知\u ca
连接到此WS需要完整的证书链表示
如下所述,证书在JAVA中显示失败,但它在.NET中运行良好,根据以下说明正确显示证书链:
返回:
证书链(先用用户证书排序,然后是零个或多个证书颁发机构),如果给定别名不存在或不包含证书链,则为null
这意味着链中没有更多的证书(自签名证书),或者PKCS#12消息中不包含所需的链元素,并且无法通过其他来源获得这些元素。我理解您的观点。但是,问题仍然存在,因为如果通过.NET导入,相同的证书可以正常工作。通过使用.NET的一个示例,系统可以加载和显示所有证书链。NET和Java是具有不同API的不同平台,可能会产生不同的结果。