javax.net.ssl.SSLPeerUnverifiedException:peer未经过身份验证

时间:2012-02-28 02:43:23

标签: exception

简单代码

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”。但是代码在其他设备和模拟器中运行良好。

有谁能告诉我为什么相同的代码在不同的机器上显示不同的结果?

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

请参阅此消息帖子:SSL "Peer Not Authenticated" error with HttpClient 4.1

我认为问题与您使用的计算机/环境是否可以访问系统范围的根证书有关。如果操作系统较新,它可能会识别(并验证/信任?)您签名的证书。但是,如果JRE / JDK不知道根CA存储,则它可能不起作用。

我有一个在Netbeans中工作的基本应用程序,但在我部署JavaFX项目之后却没有。我已将我的根证书添加到密钥库但它仍然无法正常工作。

答案 1 :(得分:0)

可能是其中一台机器在代理后面而另一台机器不在?