我的應用程序連接到使用證書驗證其身份的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