android 5.0 SSL Socket exception javax.net.ssl.SSLPeerUnverifiedException: No peer certificate

更新到最新版本的android 5.0版本 测试我的app,当我使用 api调用 Https 访问的时候报如下的错误.

javax.net.ssl.SSLPeerUnverifiedException: No peer certificate

11-26 15:35:01.919: W/System.err(353):  at com.android.org.conscrypt.SSLNullSession.getPeerCertificates(SSLNullSession.java:104)
11-26 15:35:01.919: W/System.err(353):  at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:93)
11-26 15:35:01.919: W/System.err(353):  at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:388)
11-26 15:35:01.919: W/System.err(353):  at org.apache.http.impl.conn.DefaultClientConnectionOperator.updateSecureConnection(DefaultClientConnectionOperator.java:231)
11-26 15:35:01.919: W/System.err(353):  at org.apache.http.impl.conn.AbstractPoolEntry.layerProtocol(AbstractPoolEntry.java:302)
11-26 15:35:01.920: W/System.err(353):  at org.apache.http.impl.conn.AbstractPooledConnAdapter.layerProtocol(AbstractPooledConnAdapter.java:146)
11-26 15:35:01.920: W/System.err(353):  at org.apache.http.impl.client.DefaultRequestDirector.establishRoute(DefaultRequestDirector.java:654)
11-26 15:35:01.920: W/System.err(353):  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:370)
11-26 15:35:01.920: W/System.err(353):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
11-26 15:35:01.920: W/System.err(353):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
11-26 15:35:01.920: W/System.err(353):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
11-26 15:35:01.920: W/System.err(353):  at com.praxify.model.CallServer.makeHttpGetRequest(CallServer.java:1515)
android apache ssl ssl-certificate

这两天一直被该问题困扰,经过不懈的努力,终于让我定位到了问题所在,(不一定是通用的完美解决方案。)

android 5.0版本中 谷歌不信任 SHA1证书,即使设置了2016年到期也不行。  如果发现有上面的问题可以通过浏览器的连接情况来查看是不是证书问题,解决问题的方法很简单,只需要重新配置 SHA256  或者SHA1的证书即可,重新生成一个新的. 到期日期可以设置成2015年

我是在这里地址找到的解决方法,英文好的可以去看原文:https://code.google.com/p/android-developer-preview/issues/detail?id=1200

原文地址:http://www.itmmd.com/201412/239.html

by
萌萌的it人

时间: 2024-11-04 11:28:41

android 5.0 SSL Socket exception javax.net.ssl.SSLPeerUnverifiedException: No peer certificate的相关文章

andorid HTTPS 不需要证书 VolleyEror: com.android.volley.NoConnectionError: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not fou

1.加证书(这里不说) 2.修改代码 import java.security.KeyManagementException;import java.security.NoSuchAlgorithmException;import java.security.SecureRandom;import java.security.cert.X509Certificate;import javax.net.ssl.HostnameVerifier;import javax.net.ssl.HttpsU

Java SSL Socket通讯示例

上一篇<OpenSSL与KeyStore指令小集>里面说到,最近研究SSL加密,会给出一个Java的小示例.复制一份可以运行的代码到生产上是非常不负责任的行为,不过小示例可以带我们入门,快速看清事物的本质.罗马不是一天建成的. 本文将给出一个Java SSL Socket的小例子,包括了Server和Client.希望大家上手之后,要多去研究相关的资料,理解基础概念.Java的优点是封装得比较彻底,需要介入的地方比较少,缺点是随着Java版本的升级和发展,会有很多新的概念和类涌出来,都要搞清楚

解决 Java 调用 Azure SDK 证书错误 javax.net.ssl.SSLHandshakeException

Azure 作为微软的公有云平台,提供了非常丰富的 SDK 和 API 让开发人员可以非常方便的调用的各项服务,目前除了自家的 .NET.Java.Python. nodeJS.Ruby,PHP 等语言都提供支持,详细的文档说明请参考: https://azure.microsoft.com/en-us/documentation/ 然而在使用过程中,以 Java 语言为例,在初始调用 Azure SDK/API 的时候大家会碰到类似下面的错误: [WARN] ServiceBusContrac

Android 5.0 Lollipop介绍

Android Lollipop介绍 Android 5.0 Lollipop,此版本为用户提供了丰富的新功能,并为开发者新增了数以千计的 API,它进一步扩展了 Android 的应用范围,从手机.平板电脑和可穿戴式设备,扩展到电视和汽车. 1.Android 5.0新增功能与特性 Material Design: 简介:Material Design语言的一些重要功能包括 系统字体Roboto的升级版本 ,同时颜色更鲜艳,动画效果更突出.杜拉特还简要谈到了新框架的一些变化--这个新框架也于今

Android网络编程系列 一 JavaSecurity之JSSE(SSL/TLS)

摘要: Java Security在Java存在已久了而且它是一个非常重要且独立的版块,包含了很多的知识点,常见的有MD5,DigitalSignature等,而Android在Java Seurity之外,拓展了一个android.security包,此包中就提供了KeyChain.它包含了主要三个重要的规范:JavaCryptography Extension(简写为JCE),JCE所包含的内容有加解密,密钥交换,消息摘要(Message Digest,比如MD5等),密钥管理等.本文所涉及

Android学习六:Socket 使用

1socket的作用 通过http去获取服务器的数据在有些情况下是行不通的,所有使用socket与服务器通信也是必须掌握的 2.代码 好了上代码,代码中有解释,首先是简单的服务端代码 package org.tonny; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.

android开发系列之socket编程

上周在项目遇到一个接口需求就是通讯系列必须是socket,所以在这篇博客里面我想谈谈自己在socket编程的时候遇到的一些问题. 其实在android里面实现一个socket通讯是非常简单的,我们只需要在代码里面实现一个Socket对象,同时在该对象里面传进一个ip/port,同时设置一些超时时间就可以了.代码如下: public class SocketThread extends Thread { private String ip = "192.168.129.1"; priva

Android 6.0指纹识别App开发demo

在android 6.0中google终于给android系统加上了指纹识别的支持,这个功能在iPhone上早就已经实现了,并且在很多厂商的定制的ROM中也都自己内部实现这个功能了,这个功能来的有点晚啊.在google全新发布的nexus设备:nexus 5x和nexus 6p中都携带了一颗指纹识别芯片在设备的背面,如下图(图片来自网络): 笔者手中的设备就是图上的那台黑色的nexus 5x,话说这台机器很是好看呢!手感超棒! 废话不多说,下面我出一个指纹识别的demo app,并且详细说明怎么

javax.net.ssl.SSLException: hostname in certificate didn&#39;t match:

每个协议有自己的一套SSL东西,Android 链接https经常会抛出如下错误 javax.net.ssl.SSLException: hostname in certificate didn't match: <test.rigbee.cn> != <rigbee.cn> OR <rigbee.cn> OR <www.rigbee.cn> at org.apache.http.conn.ssl.AbstractVerifier.verify(Abstra