安卓接sdk时javax.net.ssl.SSLPeerUnverifiedException: No peer certificate的问题

来源:互联网 发布:淘宝买家4钻很厉害吗 编辑:程序博客网 时间:2024/06/05 20:50



在android上遇到这个问题:

javax.net.ssl.SSLPeerUnverifiedException: No peer certificate

at org.apache.harmony.xnet.provider.jsse.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:137)

at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:93)

at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:381)

at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:165)

at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)

at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)

at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)

at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:670)

at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:509)

at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)


网上有这几种说法:

1 权限问题:

解决方案:

    <uses-permissionandroid:name="android.permission.INTERNET"/>

    <uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>

    <uses-permissionandroid:name="android.permission.WRITE_APN_SETTINGS"></uses-permission>    

    <uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>  


2 开发https应用时,服务器没有一个有效的SSL证书,导致客户端连接服务器时抛出异常

  考虑到问题是调用sdk时候出的,https请求是sdk内发出的,所以服务器的SSL证书无效的问题不应该,

  

  而且这个问题不是每个手机上都有,查看出问题的手机,时间是手动设置的,改成 自动时间和日期(使用网络提供的时间),再运行,问题解决。应该是安全机制,客户端时间戳跟服务器时间不同造成的。



 



0 0
原创粉丝点击