首先須要懂得什么是keystore,keystore是存儲密鑰(公鑰、私鑰)的容器。
keystore和truststore其本質都是keystore。只不過二者盛放的密鑰所有者不合罷了,對于keystore一般存儲本身的私鑰和公鑰,而truststore則用來存儲本身信賴的對象的公鑰。舉例申明:
1.單向認證:
由于單向認證是客戶端去驗證服務器端的真偽性,所以須要將服務器端的證書server.crt導出,導出的server.crt就是器端的公鑰。然后將 server.crt導入到客戶端的truststore中,這樣服務器就被客服端信賴了,連接時客戶端應用服務器端的公鑰去驗證服務器。
2.雙向認證:
服務器的公鑰導入到客戶端的truststore,客戶端的公鑰導入到服務器端的truststore中。
實際代碼中如何指定本身的truststore呢?
System.setProperty("javax.net.ssl.trustStore", "truststore的絕對路徑或者相對路徑");
System.setProperty("javax.net.ssl.trustStorePassword", "truststore暗碼");