我开始关注,这不是针对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