博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决 https 证书验证不通过的问题
阅读量:5008 次
发布时间:2019-06-12

本文共 2096 字,大约阅读时间需要 6 分钟。

解决的办法:忽略服务端和客户端的证书校验即可。java 提供的相关的类。

通过重写TrustManager的checkClientTrusted(检查客户端证书信任)和checkServerTrusted(检查服务端证书验证)。以及HostnameVerifier的verify(校验)方法即可取消对证书的所有验证。

import javax.net.ssl.*;import java.io.IOException;import java.net.URL;import java.security.cert.CertificateException;import java.security.cert.X509Certificate;public class DisableSSLCertificate {    private static final Logger LOGGER = LoggerFactory.getLogger(DisableSSLCertificateCheckUtil.class);    private DisableSSLCertificate() {    }    public void disableChecks() {        try {            new URL("https://0.0.0.0/").getContent();        } catch (IOException e) {            // This invocation will always fail, but it will register the            // default SSL provider to the URL class.        }        try {            SSLContext sslc;            sslc = SSLContext.getInstance("TLS");            TrustManager[] trustManagerArray = {
new X509TrustManager() { @Override public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } @Override public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } @Override public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; } }}; sslc.init(null, trustManagerArray, null); HttpsURLConnection.setDefaultSSLSocketFactory(sslc.getSocketFactory()); HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() { @Override public boolean verify(String s, SSLSession sslSession) { return true; } }); } catch (Exception e) { LOGGER.error("error msg:{}", e); throw new IllegalArgumentException("证书校验异常!"); } }}

影响的范围:将会影响整个tomcat里面对证书的验证。即通过tomcat里面的其他项目虽然没有执行这一段代码但是也同样会忽略证书的验证。

影响的时间:执行这段代码之后的所有时间都生效。

 

转载于:https://www.cnblogs.com/wade-luffy/p/6767925.html

你可能感兴趣的文章
利用python将文本文件导入数据库时,报错:Duplicate entry '...' for key 'PRIMARY'
查看>>
实验八
查看>>
Linux下nc传输文档
查看>>
(转载)在C/C++程序里打印调用栈信息
查看>>
(转载)mysqli使用prepared语句
查看>>
[HDU] 4502 吉哥系列故事——临时工计划
查看>>
php XML 读写 创建
查看>>
Python学习--内置函数isinstance()
查看>>
git使用 git本地推送到远程分支 git基本操作 git合并分支
查看>>
「模板」线段树静态开点(单点+区间修改)、动态开点
查看>>
libusb-win32学习笔记(二)
查看>>
Leetcode 70. Climbing Stairs
查看>>
pagehelper用法
查看>>
python自动化第三天-python5
查看>>
2017-2018-2 20179306 《网络攻防技术》第八周作业
查看>>
设计模式
查看>>
使用IDEA整合SSM框架
查看>>
shell输出输入流常用符号解释
查看>>
1.线程生命周期
查看>>
border_mode
查看>>