数据-https请求忽略证书,在4.4系统上可以正常请求,4.2以下都报异常。

问题描述

https请求忽略证书,在4.4系统上可以正常请求,4.2以下都报异常。

https请求忽略证书,在4.4系统上正常请求,并返回数据,4.2及以下的系统,试过了,都报一下异常,无论真机还是模拟器。
02-25 05:33:23.591: W/System.err(6405): java.lang.RuntimeException: org.apache.harmony.security.asn1.ASN1Exception: ASN.1 UTCTime: wrong format for DER, identifier at [112]
02-25 05:33:23.591: W/System.err(6405): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.verifyCertificateChain(OpenSSLSocketImpl.java:599)
02-25 05:33:23.591: W/System.err(6405): at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_do_handshake(Native Method)
02-25 05:33:23.591: W/System.err(6405): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:378)
02-25 05:33:23.591: W/System.err(6405): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream.(OpenSSLSocketImpl.java:636)
02-25 05:33:23.591: W/System.err(6405): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.getInputStream(OpenSSLSocketImpl.java:607)
02-25 05:33:23.591: W/System.err(6405): at org.apache.http.impl.io.SocketInputBuffer.(SocketInputBuffer.java:70)
02-25 05:33:23.591: W/System.err(6405): at org.apache.http.impl.SocketHttpClientConnection.createSessionInputBuffer(SocketHttpClientConnection.java:83)
02-25 05:33:23.591: W/System.err(6405): at org.apache.http.impl.conn.DefaultClientConnection.createSessionInputBuffer(DefaultClientConnection.java:170)
02-25 05:33:23.591: W/System.err(6405): at org.apache.http.impl.SocketHttpClientConnection.bind(SocketHttpClientConnection.java:106)
02-25 05:33:23.591: W/System.err(6405): at org.apache.http.impl.conn.DefaultClientConnection.openCompleted(DefaultClientConnection.java:129)
02-25 05:33:23.591: W/System.err(6405): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:172)
02-25 05:33:23.601: W/System.err(6405): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
02-25 05:33:23.601: W/System.err(6405): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
02-25 05:33:23.601: W/System.err(6405): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
02-25 05:33:23.601: W/System.err(6405): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
02-25 05:33:23.601: W/System.err(6405): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
02-25 05:33:23.601: W/System.err(6405): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
02-25 05:33:23.601: W/System.err(6405): at com.iiordanov.bVNC.AutoLoginActivity.initSSLAllWithHttpClient(AutoLoginActivity.java:1064)
02-25 05:33:23.601: W/System.err(6405): at com.iiordanov.bVNC.AutoLoginActivity$4.run(AutoLoginActivity.java:646)
02-25 05:33:23.601: W/System.err(6405): at java.lang.Thread.run(Thread.java:856)
02-25 05:33:23.601: W/System.err(6405): Caused by: org.apache.harmony.security.asn1.ASN1Exception: ASN.1 UTCTime: wrong format for DER, identifier at [112]
02-25 05:33:23.601: W/System.err(6405): at org.apache.harmony.security.asn1.DerInputStream.readUTCTime(DerInputStream.java:135)
02-25 05:33:23.601: W/System.err(6405): at org.apache.harmony.security.asn1.ASN1UTCTime.decode(ASN1UTCTime.java:77)
02-25 05:33:23.601: W/System.err(6405): at org.apache.harmony.security.asn1.ASN1Choice.decode(ASN1Choice.java:308)
02-25 05:33:23.601: W/System.err(6405): at org.apache.harmony.security.asn1.BerInputStream.readSequence(BerInputStream.java:554)
02-25 05:33:23.601: W/System.err(6405): at org.apache.harmony.security.asn1.DerInputStream.readSequence(DerInputStream.java:105)
02-25 05:33:23.601: W/System.err(6405): at org.apache.harmony.security.asn1.ASN1Sequence.decode(ASN1Sequence.java:40)
02-25 05:33:23.601: W/System.err(6405): at org.apache.harmony.security.asn1.BerInputStream.readSequence(BerInputStream.java:554)
02-25 05:33:23.601: W/System.err(6405): at org.apache.harmony.security.asn1.DerInputStream.readSequence(DerInputStream.java:105)
02-25 05:33:23.601: W/System.err(6405): at org.apache.harmony.security.asn1.ASN1Sequence.decode(ASN1Sequence.java:40)
02-25 05:33:23.601: W/System.err(6405): at org.apache.harmony.security.asn1.BerInputStream.readSequence(BerInputStream.java:554)
02-25 05:33:23.601: W/System.err(6405): at org.apache.harmony.security.asn1.DerInputStream.readSequence(DerInputStream.java:105)
02-25 05:33:23.601: W/System.err(6405): at org.apache.harmony.security.asn1.ASN1Sequence.decode(ASN1Sequence.java:40)
02-25 05:33:23.601: W/System.err(6405): at org.apache.harmony.security.asn1.ASN1Type.decode(ASN1Type.java:82)
02-25 05:33:23.601: W/System.err(6405): at org.apache.harmony.security.provider.cert.X509CertImpl.(X509CertImpl.java:128)
02-25 05:33:23.601: W/System.err(6405): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.verifyCertificateChain(OpenSSLSocketImpl.java:577)
02-25 05:33:23.601: W/System.err(6405): ... 19 more

请大神赐教!如果回答能解决我的问题,C币必追加!

解决方案

看来没有合理的方案了,这个问题已解决。是服务器做了更改。既然没有人给出有效的方案,只要结贴了

解决方案二:

我的请求方法:

public String initSSLAllWithHttpClient(int what,String url) throws ClientProtocolException, IOException {
String data = "";
int status = 0;
int timeOut = 30 * 1000;
HttpParams param = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(param, timeOut);
HttpConnectionParams.setSoTimeout(param, timeOut);
HttpConnectionParams.setTcpNoDelay(param, true);

SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
registry.register(new Scheme("https", TrustAllSSLSocketFactory.getDefault(), 443));
ClientConnectionManager manager = new ThreadSafeClientConnManager(param, registry);
DefaultHttpClient client = new DefaultHttpClient(manager, param);

HttpGet request = new HttpGet(url);
// HttpGet request = new HttpGet("https://www.alipay.com/");

String usernamePassword = loginbean.getUsername()+"@"+loginbean.getYuming_address()+":"+loginbean.getPassword();

String enToStr = "Basic"+" "+Base64.encodeToString(usernamePassword.getBytes(), Base64.NO_WRAP);
request.addHeader("Filter", "true");
request.addHeader("Authorization", enToStr);//admin@internal:abc123
request.addHeader("Content-type", "application/xml");

HttpResponse response = client.execute(request);

try{
 status = response.getStatusLine().getStatusCode();
    if (status / 100 == 2) {
        HttpEntity entity = response.getEntity();
        data = EntityUtils.toString(entity, "UTF-8");
    }

Log.i("yj", "status---------"+status);
Log.i("yj", "httpurlconnection---------"+data);
}catch(Exception e){
    e.printStackTrace();
    Message msg = mHandler.obtainMessage(10001);
    msg.arg1 = status;
    msg.obj = e;
    mHandler.sendMessage(msg);
}
Message msg = mHandler.obtainMessage(what);
msg.arg1 = status;
msg.obj = data;
mHandler.sendMessage(msg);
return data;

}

解决方案三:

http://blog.csdn.net/dengbodb/article/details/8281763

解决方案四:

苏小喵,感谢你的回答,只是你给的方案,报的异常跟我一模一样,我试过了,也是4.4可以通过,4.2还是报一样的异常。还是很感谢你的热心回答。

解决方案五:

苏小喵,感谢你的回答,只是你给的方案,报的异常跟我一模一样,我试过了,也是4.4可以通过,4.2还是报一样的异常。还是很感谢你的热心回答。

解决方案六:

oyljerry
oyljerry ,感谢的回答,只是我试过好几种方案,都是这样,你如果有成功的案例,希望赐教!

解决方案七:

没有忽略成功还是检查证书了

时间: 2024-11-02 00:26:50

数据-https请求忽略证书,在4.4系统上可以正常请求,4.2以下都报异常。的相关文章

https请求在RK3188上通不过,报异常,魅族mx4pro上已通过,并返回正常数据

问题描述 https请求在RK3188上通不过,报异常,魅族mx4pro上已通过,并返回正常数据 完整异常如下:java.security.cert.CertificateException: org.apache.harmony.security.asn1.ASN1Exception: ASN.1 UTCTime: wrong format for DER identifier at [114] at org.apache.harmony.security.provider.cert.X509

服务器A访问服务器B没有携带https客户度证书

问题描述 服务器A访问服务器B没有携带https客户度证书 我有个wcf程序部署在在iis,它会请求另外的服务器B,并携带一个客户端证书(证书是安装在电脑上面的), 我部署在自己的电脑上面win10,能正常访问另外的服务器B, 我部署在服务器winservice08 ,就不能正常发起另外的服务器B, 我通过抓包工具发现,他是没有携带 https 的客户端证书,所以服务器B断开连接了. 解决方案 那你的程序是如何提交证书来发送请求的 解决方案二: request = (HttpWebRequest

iis7-IIS7用HTTPS的,证书申请了,客户端证书也安装了可是报403

问题描述 IIS7用HTTPS的,证书申请了,客户端证书也安装了可是报403 老板让发布个HTTPS的网站,我用IIS7发布的,申请了证书,证书也翻出来了,可是客户端一访问就报403,求救呀!!!!!哪个大神帮个忙. 解决方案 403是禁止访问 先看你iis有没有正确转发路径请求 以及客户端访问路径正确没

浅谈https\ssl\数字证书,互联网营销

在互联网安全通信方式上,目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了.本文追本溯源围绕这个模式谈一谈. 名词解释 首先解释一下上面的几个名词: https:在http(超文本传输协议)基础上提出的一种安全的http协议,因此可以称为安全的超文本传输协议.http协议直接放置在TCP协议之上,而https提出在http和TCP中间加上一层加密层.从发送端看,这一层负责把http的内容加密后送到下层的TCP,从接收方看,这一层负责将TCP送来的数据解密还原成http的内容.

casperjs忽略证书验证

问题描述 casperjs忽略证书验证 用casperjs访问网站,控制台打开,忽略证书验证,然后截图.控制台可以用nodejs,但访问必须是casperjs

ssl-C# 关于Socket忽略证书的443端口连接问题

问题描述 C# 关于Socket忽略证书的443端口连接问题 this.sslStream = new SslStream(this._client.GetStream(), false, new RemoteCertificateValidationCallback(this.CheckValidationResult), null); try { this.sslStream.AuthenticateAsClient(serverip, null, SslProtocols.Tls, fal

https 证书错误-https链接导致证书错误的原因,多谢帮忙

问题描述 https链接导致证书错误的原因,多谢帮忙 很多https网站的第一次访问时,浏览器会提示证书错误,然后点击"继续",就能正常访问了. 网上查了下这个问题,说如果要解决这个证书错误的提示,需要在IE的设置里面导入证书(导入过程略复杂),然后就不会出现错误页面了. 请问要彻底解决这个证书错误的问题,是否真的要复杂地导入一遍证书? 还有,如果不导入证书,点击"继续"也可正常访问,请问这样的话,以后是否浏览器就算自动导入证书了?之后访问该网站是否会又突然出现证书

数据-Android 登入成功后再发送任何请求都报错

问题描述 Android 登入成功后再发送任何请求都报错 用其中一个帐号登入是没有任何问题的,但是切换到其它帐号之后登入进去 ,再发送请求 获取数据数据的时候就会报错, 切换回那个帐号后又没问题 大家来帮我分析分析 报错内容: Caused by: org.springframework.web.client.HttpClientErrorException: 400 Bad Request 解决方案 如果只是账号不一样引起的异常,更像是账号的权限引起. 解决方案二: token改过来了吗?

检测https得数字证书

问题描述 如何检测客户端是否安装了https得数字证书我用了System.Web.HttpClientCertificatehcc=Request.ClientCertificate;hcc.IsPresent可是还是没有达到预期效果,数字证书本机肯定装了,可hcc.IsPresent还是为false