首页 > 其他分享 >HttpURLConnection绕过SSL验证,信任所有证书的工具类

HttpURLConnection绕过SSL验证,信任所有证书的工具类

时间:2023-07-13 20:31:58浏览次数:41  
标签:trustAllCerts Override 证书 SSL sc new null public HttpURLConnection

HttpURLConnection绕过SSL验证,信任所有证书的工具类

发起https请求时经常会出现javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException这样的错误,那是因为环境中没有证书校验,我们可以在连接中设置绕过SSL校验来解决这个问题。

public class SslUtil {

    // 针对全局
    public static void trustAllHttpsCertificates() throws NoSuchAlgorithmException, KeyManagementException {
        TrustManager[] trustAllCerts = new TrustManager[1];
        trustAllCerts[0] = new TrustAllManager();
        SSLContext sc = SSLContext.getInstance("SSL");
        sc.init(null, trustAllCerts, null);
        HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
        HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
            @Override
            public boolean verify(String urlHostName, SSLSession session) {
                return true;
            }
        });
    }

    // 针对单个连接
    public static void trustAllHttpsCertificates(URLConnection connection) throws NoSuchAlgorithmException, KeyManagementException {
        HttpsURLConnection httpsURLConnection = (HttpsURLConnection) connection;
        TrustManager[] trustAllCerts = new TrustManager[1];
        trustAllCerts[0] = new TrustAllManager();
        SSLContext sc = SSLContext.getInstance("SSL");
        sc.init(null, trustAllCerts, null);
        httpsURLConnection.setSSLSocketFactory(sc.getSocketFactory());
        httpsURLConnection.setHostnameVerifier(new HostnameVerifier() {
            @Override
            public boolean verify(String urlHostName, SSLSession session) {
                return true;
            }
        });
    }

    private static class TrustAllManager implements X509TrustManager {

        @Override
        public X509Certificate[] getAcceptedIssuers() {
            return null;
        }

        @Override
        public void checkServerTrusted(X509Certificate[] certs, String authType) throws CertificateException {
        }

        @Override
        public void checkClientTrusted(X509Certificate[] certs, String authType) throws CertificateException {
        }
    }
}

标签:trustAllCerts,Override,证书,SSL,sc,new,null,public,HttpURLConnection
From: https://blog.51cto.com/u_16167766/6715904

相关文章

  • 证书Certificate学习笔记
    目录window上执行生成证书生成证书使用脚本获取目标网站的证书检查服务端证书和CA证书的DN字段是否不一致SAN设置更新证书信任链openssl使用常见错误及处理CA:FALSE表示该证书不能用作中间证书了,也就是说不能拿这个证书继续去签发新的证书。window上执行生成证书MSYS_NO_PATH......
  • python 生成荣誉证书
    准备材料荣誉证书空白模板机构印章用户照片字体Xingkai.ttcSTHeitiMedium.ttcShiGongZiHei.otfpython代码importtimefromPILimportImage,ImageDraw,ImageFontfromdatetimeimportdatetimedefmake_badge(nickname,subject_name,id_no,dist,mark......
  • 阿里云限时福利:WoSign品牌SSL证书首购4折优惠
    阿里云限时福利:WoSign品牌SSL证书首购4折优惠阿里云SSL证书限时首购福利:2023年07月04日至08月31日,阿里云平台WoSign品牌系列SSL证书首购4折优惠,惊喜折扣、限时促销、限量抢购,机会不容错过!阿里云平台WoSignSSL证书沃通CA是依法设立的第三方电子认证服务机构,与阿里云稳定合作多年,......
  • Burp Suite证书安装流程和主要模块功能介绍
    BurpSuite证书添加流程和模块功能介绍1. 打开Google浏览器,右上角打开设置2. 打开后是这样的3. 然后打开隐私和安全4. 打开右边菜单栏的安全5. 点击管理设备证书6. 点击中间证书颁发机构按照上面的顺序点击点击浏览,导入刚刚导出的der文件,下一步点......
  • 苹果开发者证书、描述文件申请以及p12文件导出详解
    ios开发有个要求就是,打包时需要带上p12证书和mobileprovisionprofile配置文件p12证书来自于,苹果每年要收99美元的开发者费用,开通了开发者权限,才能生成证书mobileprovision profile配置文件里面设置了测试阶段可以下载应用的ios账号,只有在profile里面的账号才能下载当证书过期......
  • window程序的签名证书,都需要第三方权威机构的认证(都需要联网进行签名)
    Window签名的RSA算法:通过公钥与私钥来判断私钥的合法。公钥与私钥具有对称性,既可以通过私钥加密,公钥解密,以此来论证私钥持有者的合法身份。也可以通过公钥加密,私钥解密,来对私钥持有者发信息而不被泄露。由于在交换公钥时免不了遭遇中间人劫持,因此window程序的签名证书,都需要第三......
  • PMP®证书增持 CSPM-2证书,到这办理真便捷
    2023年6月起,持有PMP®证书的朋友可以直接增持一个同等级证书CSPM-2,不用重新考试,不用重新学习,原PMP®证书不影响正常使用,相当于多了一个国标项目管理领域的证书。 第一步·准备资料 1、填写能力评价表2、提供2张2寸蓝底彩照(电子版另外收10元打印费)3、提供PMP®证书电子版1份4、快......
  • pycharm安装django失败,原因是报了一个ssl异常,也就是说和国外源站服务器ssl失败。 所
    pycharm安装django失败,原因是报了一个ssl异常,也就是说和国外源站服务器ssl失败。所以选用国内源站安装:选中Options,输入:“-ihttps://pypi.tuna.tsinghua.edu.cn/simple” ......
  • Selenium基础:SSL证书错误处理 13
    1、chrome解决办法在chromeoptions()中添加”--ignore-certificate-errors"为true的选项#-*-coding:utf-8-*-fromseleniumimportwebdriveroptions=webdriver.ChromeOptions()#添加忽视证书错误选项options.add_argument('--ignore-certificate-errors')driver=web......
  • Java自签名证书的信任处理
    一、概要1.问题的由来该问题是由于Java访问的域名是https且使用了自签名证书,Java客户端无法验证证书的合法性,进而报出异常。该问题有以下解决思路:a.在Java客户端忽略证书的校验,这种方式适用于自己掌握Code的情况,且客户端服务端处于互相信任的环境中;b.将服务端的自签名证......