zoukankan      html  css  js  c++  java
  • https接口调用 忽略https请求的ssl证书

    import javax.net.ssl.*;
    import java.security.cert.CertificateException;
    import java.security.cert.X509Certificate;

    /**
    * @author h
    * @version V1.0
    * @ClassName: SslUtils
    * @Description TODO
    * @modify: {原因} by heamin 2020/6/29 9:52
    */
    public class SslUtils {

    private static void trustAllHttpsCertificates() throws Exception {
    TrustManager[] trustAllCerts = new TrustManager[1];
    TrustManager tm = new miTM();
    trustAllCerts[0] = tm;
    SSLContext sc = SSLContext.getInstance("SSL");
    sc.init(null, trustAllCerts, null);
    HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
    }

    static class miTM implements TrustManager, X509TrustManager {
    @Override
    public X509Certificate[] getAcceptedIssuers() {
    return null;
    }

    public boolean isServerTrusted(X509Certificate[] certs) {
    return true;
    }

    public boolean isClientTrusted(X509Certificate[] certs) {
    return true;
    }

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

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

    /**
    * 忽略HTTPS请求的SSL证书,必须在openConnection之前调用
    *
    * @throws Exception
    */
    public static void ignoreSsl() throws Exception {
    HostnameVerifier hv = new HostnameVerifier() {
    @Override
    public boolean verify(String urlHostName, SSLSession session) {
    System.out.println("Warning: URL Host: " + urlHostName + " vs. " + session.getPeerHost());
    return true;
    }
    };
    trustAllHttpsCertificates();
    HttpsURLConnection.setDefaultHostnameVerifier(hv);
    }

    }
  • 相关阅读:
    原来四五年没有写过什么东西了
    Spark难道比oracle性能还差?百万级数据测试性能
    程序人常去的网站(转)
    Android中关于dip和px以及转换的总结
    padding与margin的区别
    Python装饰器探究——装饰器参数
    Python 装饰器执行顺序迷思
    Python CSV模块简介
    理解线程3 c语言示例线程基本操作
    Python 外部函数调用库ctypes简介
  • 原文地址:https://www.cnblogs.com/heamin/p/13608107.html
Copyright © 2011-2022 走看看