java ssl 忽略证书_java 忽略SSL证书

针对不同的http客户端,有不同的配置方式,但总的来说,就是配置SSLSocketFactory和HostnameVerifier。

一、okhttp

可以参考:https://blog.csdn.net/u014752325/article/details/73185351

二、httpclient

这里又分为连接池和非连接池,配置稍有不同。

连接池:

public final CloseableHttpClient getCustomClient() {

try {

HttpClientBuilder builder = HttpClientBuilder.create().useSystemProperties();

SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null,

(TrustStrategy) (X509Certificate[] arg0, String arg1) -> true).build();

builder.setSSLContext(sslContext);

HostnameVerifier hostnameVerifier = new NoopHostnameVerifier();

SSLConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory(sslContext, hostnameVerifier);

Registry socketFactoryRegistry = RegistryBuilder.create()

.register("http", PlainConnectionSocketFactory.getSocketFactory())

.register("https", sslSocketFactory)

.build();

PoolingHttpClientConnectionManager connMgr = new PoolingHttpClientConnectionManager(socketFactoryRegistry);

builder.setConnectionManager(connMgr);

return builder.build();

} catch (Exception ex) {

LOG.log(Level.SEVERE, ex.getMessage(), ex);

}

return getSystemClient();

}

非连接池:

CloseableHttpClient configureHttpClient(boolean enableSslVerify) {

HttpClientBuilder builder = HttpClientBuilder.create();

if (enableSslVerify) {

return builder.build();

}

SSLContext sslContext = null;

try {

sslContext =

new SSLContextBuilder().loadTrustMaterial(null, (x509Certificates, s) -> true).build();

} catch (NoSuchAlgorithmException | KeyStoreException | KeyManagementException e) {

LOG.error("Could not create ssl context", e);

}

builder.setSSLHostnameVerifier(new NoopHostnameVerifier()).setSSLContext(sslContext);

return builder.build();

}

@Bean

public Client feignClient() {

SSLContext context = buildCertificateIgnoringSslContext();

Client trustSSLSockets = new Client.Default(context.getSocketFactory(), new NoopHostnameVerifier());

return trustSSLSockets;

}

public static SSLContext buildCertificateIgnoringSslContext() {

try {

return new SSLContextBuilder()

.loadTrustMaterial(null, (x509Certificates, s) -> true)

.build();

}

catch (KeyManagementException | NoSuchAlgorithmException | KeyStoreException e) {

throw new IllegalStateException("Unexpected exception while building the certificate-ignoring SSLContext.", e);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值