我的应用程序连接到使用证书验证其身份的SSL Web服务。最近,这个证书发生了变化,并且由于它没有被可信任的权威机构签名,所以我的部分应用程序失败该服务的建议,以防止在将来的这种情况下,我应该开始信任现有的证书的签名权威,而不是个人证书。如何信任Java中的证书颁发机构?
在Java中如何实现?
目前我使用密钥工具,并撰写成的TrustManagerFactory像添加它们所提供的证书到密钥库中:
public static TrustManager[] getTrustManagers() throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException {
KeyStore tks = KeyStore.getInstance(KeyStore.getDefaultType());
tks.load(StarTrustManagerFactory.class.getResourceAsStream("webservice.ks"), "password".toCharArray());
TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init(tks);
return tmf.getTrustManagers();
};
有没有适应这种方法的一种方式返回TrustManager
其信任签署我所拥有的证书的权力?另外,如何从证书中提取有关证书签名者的信息?
谢谢,丹。
请参阅http://javarevisited.blogspot.de/2012/09/difference-between-truststore-vs-keyStore-Java-SSL.html - 您信任您的信任库中包含的任何证书。 – zapl 2014-10-29 11:51:45