简单代码
public class Demo {
public static void main(String[] args) {
HttpClient httpclient = new DefaultHttpClient();
try {
HttpGet httpget = new HttpGet("https://banweb.cityu.edu.hk/");
HttpResponse response = httpclient.execute(httpget);
} catch (Exception e) {
e.printStackTrace();
}
}
}
我有2个桌面(A和B),2个笔记本电脑(A和B),3个Android设备(A,B和C)和3个Android模拟器(SDK v2.1,v4.0和v4.03)。当上面的代码在桌面A,android模拟器v4.0和v4.0.3中运行时,它会抛出“javax.net.ssl.SSLPeerUnverifiedException:peer not authenticated”。但是代码在其他设备和模拟器中运行良好。
有谁能告诉我为什么相同的代码在不同的机器上显示不同的结果?
感谢您的帮助。
答案 0 :(得分:3)
请参阅此消息帖子:SSL "Peer Not Authenticated" error with HttpClient 4.1
我认为问题与您使用的计算机/环境是否可以访问系统范围的根证书有关。如果操作系统较新,它可能会识别(并验证/信任?)您签名的证书。但是,如果JRE / JDK不知道根CA存储,则它可能不起作用。
我有一个在Netbeans中工作的基本应用程序,但在我部署JavaFX项目之后却没有。我已将我的根证书添加到密钥库但它仍然无法正常工作。
答案 1 :(得分:0)
可能是其中一台机器在代理后面而另一台机器不在?