我開始關注,這不是針對Android套管的教程,並得到這個:如何通過Android訪問SSL連接?
System.setProperty("javax.net.ssl.trustStore", "truststore");
System.setProperty("javax.net.ssl.trustStorePassword", "password");
SSLSocketFactory ssf = (SSLSocketFactory) SSLSocketFactory.getDefault();
try {
Socket s = ssf.createSocket("192.168.2.11", 6543);
PrintWriter out = new PrintWriter(s.getOutputStream());
while (true){
out.println("SSL TEST");
Log.d("DATA", "DATA SENT");
}
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我想這可以歸結爲幾個問題:
我沒有我自己的信任存儲創建,但在網上搜索教程和東西,我不知道如何創建一個。有沒有一種方法可以創建或修改信任庫以獲取我需要的證書? (我使用的是自簽名證書,如果有什麼差別)
如何使事情與SSL握手平穩運行?現在,我得到的錯誤是:
javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
老實說,我真的不明白這意味着什麼。
我需要什麼樣的設置或文件來修改自己的Android設備上,以確保這方面發生的呢?
你或許應該剛開始與Android的方式來做到這一點,而不是試圖修改非Android技術。 –
我也嘗試將我從服務器獲得的keystore文件放在我的jdk/jre/lib/security文件夾中,然後更改信任存儲位置和密碼以匹配該文件,並且我得到了相同的異常。 – Matt
等待!什麼是「Android的方式」? – Matt