`

Apache HTTPClient 忽略证书

    博客分类:
  • java
阅读更多
/**
 * httpclient4.5.2版
 * 忽略服务器证书,采用信任机制
 * @return
 */
public static HttpClientConnectionManager init(){
	try {
		SSLContext sslContext  = SSLContexts.custom().loadTrustMaterial(null, new TrustStrategy() {
			@Override
			public boolean isTrusted(X509Certificate[] arg0, String arg1)
					throws CertificateException {
				return true;
			}
		}).build();
		SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory( sslContext, new String[] { "TLSv1" }, null,
				SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
		Registry registry = RegistryBuilder
				. create()
				.register("http", PlainConnectionSocketFactory.INSTANCE)
				.register("https", sslsf).build();
		return new PoolingHttpClientConnectionManager(registry);
	} catch (Exception e) {
		e.printStackTrace();
	}
	return null;
}


/**
 * javax.net.ssl
 * 忽略服务器证书,采用信任机制
 */
private static void disableSslVerification() {
	try {
		// Create a trust manager that does not validate certificate chains
		TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {
			public java.security.cert.X509Certificate[] getAcceptedIssuers() {
				return null;
			}

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

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

		// Install the all-trusting trust manager
		SSLContext sc = SSLContext.getInstance("SSL");
		sc.init(null, trustAllCerts, new java.security.SecureRandom());
		HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

		// Create all-trusting host name verifier
		HostnameVerifier allHostsValid = new HostnameVerifier() {
			public boolean verify(String hostname, SSLSession session) {
				return true;
			}
		};

		// Install the all-trusting host verifier
		HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid);
	} catch (NoSuchAlgorithmException e) {
		e.printStackTrace();
	} catch (KeyManagementException e) {
		e.printStackTrace();
	}
}
分享到:
评论

相关推荐

    httpClient实例httpClient调用 http/https实例 忽略SSL验证

    以下是如何配置HttpClient忽略SSL验证: 1. 创建自定义的`SSLSocketFactory`: 首先,创建一个不检查主机名的`SSLContext`: ```java SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(null, ...

    http远程接口调用-httpClient+跳过SSL证书校验

    本文将详细介绍如何使用Apache HttpClient库进行HTTP远程接口调用,并讲解如何在Java中跳过SSL证书校验。 HttpClient是Apache提供的一款强大的HTTP客户端库,支持多种HTTP协议版本和功能,包括GET、POST请求、...

    httpclient 绕开HTTPS证书校验

    这时,`httpclient`库提供了一种解决方案,允许我们以非标准方式配置客户端,从而忽略证书校验错误。 `httpclient`是一个强大的Java库,用于执行HTTP请求,支持多种协议,包括HTTPS。在`httpclient-4.2.5.jar`这个...

    简单json解析,httpclient免证书校验

    在某些情况下,如测试环境,我们可能需要忽略SSL证书验证,以简化调试过程。这通常不推荐在生产环境中使用,因为它降低了安全性。 以下是如何在HttpClient中禁用SSL证书校验: 1. **创建自定义SSLContext**:首先...

    httpclient4.5 绕过ssl认证文件访问

    HTTPClient 4.5中提供了这样的功能,可以让我们自定义SSL上下文,从而绕过默认的证书验证。以下是如何操作的步骤: 1. **创建自定义的X509TrustManager**:这个类负责验证服务器证书。我们可以创建一个信任所有证书...

    java17 https 忽略ssl认证, httpclient5 ,springboot3.2.7 脚手架

    springboot3.2.7 基于java17 ,测试https 接口,基于 RestTemplate 实现

    使用httpclient无需证书调用https的示例(java调用https)

    首先,我们需要创建一个自定义的`SSLSocketFactory`,该工厂会忽略证书验证。这通常不推荐用于生产环境,因为它可能导致安全漏洞,但在测试或调试时非常有用。下面是如何创建这样一个工厂: ```java import javax...

    httpClient4.5配置SSL绕过https证书,httpClient过时替代方法-附件资源

    httpClient4.5配置SSL绕过https证书,httpClient过时替代方法-附件资源

    Java Https请求,跳过证书,直接访问

    对于Apache HttpClient: ```java CloseableHttpClient httpClient = HttpClients.custom() .setSSLSocketFactory(sslSocketFactory) .build(); ``` 对于HttpURLConnection: ```java URL url = new URL(...

    (完整版)JAVA利用HttpClient进行POST请求(HTTPS).doc

    在使用HttpClient发送POST请求时,我们需要关心两个方面的问题:一是如何忽略证书验证过程,二是如何发送POST请求。对于前者,我们可以使用X509TrustManager来忽略证书验证过程。对于后者,我们可以使用HttpPost对象...

    httpclient ssl 相关问题解决资料

    首先,我们需要创建一个自定义的`X509TrustManager`,它会忽略证书验证。这是一个简单的实现: ```java X509TrustManager tm = new X509TrustManager() { public void checkClientTrusted(X509Certificate[] xcs, ...

    HttpClient Https实战

    我们可能需要创建并加载信任的证书,或者忽略证书错误以适应不同的环境需求。 配置HttpClient进行HTTPS连接通常包括以下步骤: 1. 创建SSLContext:加载信任的证书或者设置自定义的信任策略。 2. 创建...

    应用HttpClient时添加的代码。

    hostnameincertificatedidn'tmatchϢhttpclienthostnameincertificatedidn'tmatchҪӵĴ룺`”,这段话翻译过来大致意思是:“在使用HttpClient处理HTTPS请求时遇到的`SSLException`异常:证书中的主机名不匹配。...

    JAVA利用HttpClient进行POST请求(HTTPS)实例

    请注意,实际生产环境中,忽略SSL证书校验并不是一个好的实践,因为它可能导致安全问题。在开发和测试环境中,这可能是一种快速的解决方案,但在部署到生产环境时,应确保正确配置SSL证书以保证通信的安全性。 总结...

    java,HttpClient模拟上传,绕过SSL认证

    在Java编程中,HttpClient库是Apache提供的一款强大的HTTP客户端工具,用于执行HTTP和HTTPS请求。在某些场景下,比如开发测试或调试时,我们可能需要模拟上传文件到HTTPS服务器,而这个过程可能会遇到SSL(Secure ...

    httpClient,JAVA访问http request response

    - 配置SSL上下文:对于HTTPS请求,需要创建`SSLContext`,可能还需要信任自签名证书或忽略主机名验证。 - 使用`SchemeRegistry`或`SSLContextBuilder`配置HTTPS支持。 5. **POST请求与表单编码**: - 对于POST...

    http发送示例.rar

    - 处理SSL/TLS证书,比如信任自签名证书或者忽略证书验证。 通过这两个源代码文件,开发者可以学习如何在Java环境中实现HTTP和HTTPS请求,了解网络通信的基本流程和安全性考虑。同时,这也是一个很好的实践案例,...

    httpcomponents-client-4.1.2-bin.tar (1).gz

    它还支持SSL/TLS的自定义配置,如设置信任的证书和忽略不安全的SSL/TLS协议。 在"压缩包子文件的文件名称列表"中,"httpcomponents-client-4.1.2"通常会包含以下组件: 1. JAR文件:如httpclient-4.1.2.jar,包含了...

    httpclinet实现访问https的示例程序

    本示例程序通过`httpclient`库展示了如何在Java环境中实现HTTP和HTTPS的访问,特别是如何在忽略证书验证的情况下访问HTTPS连接。 首先,`httpclient`是一个强大的Java库,由Apache软件基金会开发,它提供了用于执行...

    HttpUtil,支持data-form、SSL等

    在处理SSL请求时,开发者可能需要配置信任的证书或忽略证书错误,这取决于具体的应用场景和安全策略。`HttpUtil` 应该提供了一种简单的方式来处理这些复杂性,使得非安全专家也能轻松地实现安全的网络通信。 总的来...

Global site tag (gtag.js) - Google Analytics