绕过证书校验https协议URL

原创 2013年12月04日 19:52:34
校验Http协议URL 并获取内容:   HttpClient 测试url连通 取得content  

在项目中遇到需要校验https协议的url报出SSL异常问题。先前写过一片校验http协议的文章不适合校验非信任域证书的https的URL,会报SSL异常,原因是程序里加载远程应用的证书。其实我们可以绕过证书只校验URL。

根据别人的代码做了一下修改,代码如下:


package com.williamwu.service;

import java.net.SocketTimeoutException;
import java.security.cert.X509Certificate;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;

@SuppressWarnings("deprecation")
public class ConnectUtils {
	/**
	 * 自定义私有类:绕开HTTPS证书校验
	 */
	private static class EasyTrustManager implements X509TrustManager {
		public X509Certificate[] getAcceptedIssuers() {
			return null;
		}                                                                                                                                                                                                                                                                                   

		public void checkClientTrusted(X509Certificate[] certs, String authType) {
		}

		public void checkServerTrusted(X509Certificate[] certs, String authType) {
		}
	}
	
	public static int isSSLConnected(String httpUrl) throws SocketTimeoutException, Exception {
		int statusCode = 0;
		
		HttpClient hc = new DefaultHttpClient();
		// 连接超时设为6秒
		hc.getParams().setIntParameter("http.connection.timeout", 6000);
		// 连接成功后等待返回的超时设为8秒
		hc.getParams().setIntParameter("http.socket.timeout", 8000);		
		
		HttpGet httpGet = new HttpGet(httpUrl);
		
		try 
		{
			// HTTPS应绕开证书验证
			SSLContext context = SSLContext.getInstance("TLS");
			context.init(null, new TrustManager[] { new EasyTrustManager() },
					null);
			SSLSocketFactory factory = new SSLSocketFactory(context,
					SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
			Scheme https = new Scheme("https", 443, factory);
			hc.getConnectionManager().getSchemeRegistry().register(https);

			HttpResponse response = hc.execute(httpGet);
			statusCode = response.getStatusLine().getStatusCode();
		} catch (Exception e) {
			httpGet.abort();
			throw e;
		} finally {
			hc.getConnectionManager().shutdown();
		}
		return statusCode;
	}
}


Node.Js TLS(SSL) HTTPS双向验证

考虑到数据传输的安全及保密,决定采用TLS(SSL)协议,既节省了设计安全协议的时间,也容易与外部系统协同工作。作为工业标准的TLS(SSL)协议已经有许多成熟的解决方案,故不打算自行开发,而是使用开...
  • marujunyy
  • marujunyy
  • 2013年01月07日 17:17
  • 6917

iOS UIWebView 访问https绕过证书验证的方法

@implementation NSURLRequest (NSURLRequestWithIgnoreSSL) + (BOOL)allowsAnyHTTPSCertificateForHo...
  • icemanws
  • icemanws
  • 2015年03月30日 09:07
  • 1485

利用xposed绕过安卓SSL证书的强校验

什么是SSL pinning https协议验证服务器身份的方式通常有三种,一是根据浏览器或者说操作系统(Android)自带的证书链;二是使用自签名证书;三是自签名证书加上SSL Pinning特...
  • maspchen
  • maspchen
  • 2016年02月13日 05:32
  • 2118

HttpClient之配置ssl,采用绕过证书验证实现https

网址:http://blog.csdn.net/xiaoxian8023/article/details/49865335 public static v...
  • yyongsheng
  • yyongsheng
  • 2016年07月24日 20:07
  • 1318

iOS UIWebView 访问https 绕过证书验证的方法

转自:http://blog.csdn.net/sirodeng/article/details/9495535 在文件开始实现  allowsAnyHTTPSCertificateForHost 方...
  • robinson_911
  • robinson_911
  • 2015年02月03日 20:13
  • 1292

访问https 绕过证书验证方法

AFNetworking: /* 关闭验证 */ AFSecurityPolicy *security = [AFSecurityPolicy policyWithPinningMode:A...
  • feiyuyuan_9257
  • feiyuyuan_9257
  • 2017年08月30日 15:41
  • 130

关于ios项目绕过证书访问https

听说苹果发布了声明,将于年底将所有iOS应用的http访问强制改为https访问。个人认为这是个好事,启用HTTPS网络连接之后,数据传输的安全性将大幅提示,不容易被黑客拦截破译。 所以得跟上形势不...
  • xurimingyue123
  • xurimingyue123
  • 2016年06月24日 20:45
  • 1708

App绕过SSL证书验证

定义全局变量  NSURLSession *_sharedSession; 初始化全局变量 NSURLSessionConfiguration *sessionConfiguration...
  • u011458546
  • u011458546
  • 2016年05月11日 16:52
  • 293

Java用HttpsURLConnection访问https网站的时候如何跳过SSL证书的验证?

在Java的编程世界里面,我们有的时候,会经常访问一些HTTPS的网站,那么访问这些HTTPS的网站的时候,如果当前这个网站是自己企业内部的已知 的网站,或者我们信任的网站,这个时候,我们为了编写程序...
  • chancein007
  • chancein007
  • 2017年07月02日 20:53
  • 1502

Xposed绕过SSL 抓https包,不用安装证书

工具 charles抓包工具 官方地址 破解版本地址 破解地址上面有历史的下载版本 以及对应破解的Jar包 根据目录替换就行 绕过SSL J...
  • zhangmiaoping23
  • zhangmiaoping23
  • 2017年07月19日 14:29
  • 1302
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:绕过证书校验https协议URL
举报原因:
原因补充:

(最多只允许输入30个字)