在网上看了,httpchlent的资料,httpchlent4.1可以实现对ssl的无证书访问。
实现代码为:
SSLContext sslcontext = SSLContext.getInstance("TLS");
sslcontext.init(null, new TrustManager[] { easyTrustManager }, null);
SSLSocketFactory sf = new SSLSocketFactory(sslcontext);
Scheme sch = new Scheme("https", sf, 8443);
httpclient.getConnectionManager().getSchemeRegistry().register(sch);
但在android2.1中,SSLSocketFactory类中没有下面这个构造函数
SSLSocketFactory sf = new SSLSocketFactory(sslcontext);
客户端不想存放安全证书,请问在android2.1如何实现对ssl的无证书访问?
解决方法如下:
public String connentUrl(String strUrl) {
StringBuffer sbResult = null;
try {
HttpURLConnection http = null;
URL url = new URL(strUrl);
// 判断是http请求还是https请求
if (url.getProtocol().toLowerCase().equals("https")) {
trustAllHosts();
HttpsURLConnection https = (HttpsURLConnection) url.openConnection();
https.setHostnameVerifier(DO_NOT_VERIFY);
http = https;
} else {
http = (HttpURLConnection) url.openConnection();
}
http.setDoInput(true);
// 设置超时时间
http.setConnectTimeout(10000);
// 设置请求类型为post
http.setRequestMethod("POST");
// 设置接收类型
http.setRequestProperty("accept", "*
private static void trustAllHosts() {
// Create a trust manager that does not validate certificate chains
// Android 采用X509的证书信息机制
TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return new java.security.cert.X509Certificate[] {};
}
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {}
public void checkServerTrusted(X509Certificate[] chain,String authType) throws CertificateException {}
}
};
// Install the all-trusting trust manager
try {
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (Exception e) {
e.printStackTrace();
}
}
分享到:
相关推荐
android ssl证书验证
Windows下Nginx配置SSL实现Https访问(包含证书生成)
1. cer格式——>JKS (keytool 为JDK自带的,可以在bin目录下找到) keytool -import -alias mycert -file d:\def.cer -keystore mykeystore.jks (导入证书到keystore) 2. JKS——>cer格式 keytool -import -...
使用方法见:... 1. Android使用HTTPCLIENT访问国密SSL协议的HTTPS服务 2. 示例代码为单向认证,可支持双向认证 3. 获取服务端的国密数字证书 4. 适用于Android 7.0(API 24)及以上
使用HttpClient4.5实现https请求忽略SSL证书验证工具类
本demo使用HttpsURLConnection方式的SSL双向认证,实现oauth2.0客户端请求方式,并且实现了普通post接口请求,及多图上传的post请求接口,做了网络请求的封装。
Android SSL验证原理
注意,这个插件报告所有使用SHA-1签署的SSL证书链在2017年1月1日之后失效都是脆弱的。这与谷歌的SHA-1加密哈希算法的逐渐衰落相一致。 该工具主要用于弱哈希算法签名的SSL证书升级成sha256算法签名证书。
springboot下配置SSL证书HTTPS访问,简单快捷通俗易通,
mallodroid, 在Android应用程序中,查找已损坏的SSL证书验证 mallodroid在Android应用程序中发现损坏的SSL证书验证。 MalloDroid是一个构建在 androguard ( https://code.google.com/p/androguard/ ) 反向工程框架之...
SSL证书安装并且包括Apache服务器安装ssl证书、iis服务器安装ssl证书、Nginx服务器安装ssl证书、Tomcat服务器安装证书
ssl自制全套证书(包含服务器端、客户端、ca端的证书,格式有.crt,.key,.truststore,.keystore,.p12,.cer,.pem等类型),当时要配置webservice接口、tomca、nginx通过ssl访问的证书,弄了好久才生成了一套能使用的。...
手机开发平台 Google Android SDK 2.1 R4 Android eclipse插件安装: https://dl-ssl.google.com/Android/eclipse/ Android netBean插件安装: http://kenai.com/downloads/nbandroid/updates.xml Android官方网站为...
【免费申请SSL证书】申请免费的SSL证书(一)__什么是域名DNS解析、SSL证书?
域名SSL证书在线生成系统_SSL在线自签证书工具_免费SSL在线生成源码 源码没有后台没有数据库,源码简单便捷,上传到空间内即可使用,虚拟主机,vps...随时可以生成自己的域名证书,可以在宝塔后台添加ssl,测试正常!
主要介绍了Android APP之WebView校验SSL证书的方法,需要的朋友可以参考下
IOS,Android SSL双向认证HTTPS方式请求及配置证书,内有Android ios代码
该文档提供JKS转换为PFX的方法 使用JWSDP工具包中的工具 •安装J2SE 1.5,下载并运行jdk-1_5_0_09-windows-i586-p.exe ...•查看server.jks 里面的证书记录: keytool -list -v -keystore server.jks
android webview SSL认证配置(p12证书)
Android实现https网络访问,四种实现方式:1、客户端添加指定信任cer证书。2、客户端信任所有证书。3、HttpClient方式实现,支持所有Https免验证方式链接(与2类似,只不过采用HttpClient方式实现)。4、HttpClient...