zoukankan      html  css  js  c++  java
  • Java访问SSL地址,免验证证书方式

     1 package com.lenovo.biportal.utils.bitool;
     2 
     3 import javax.net.ssl.HostnameVerifier;
     4 import javax.net.ssl.HttpsURLConnection;
     5 import javax.net.ssl.SSLContext;
     6 import javax.net.ssl.X509TrustManager;
     7 import java.io.BufferedReader;
     8 import java.io.InputStream;
     9 import java.io.InputStreamReader;
    10 import java.net.HttpURLConnection;
    11 
    12 public class SSL {
    13     final static HostnameVerifier DO_NOT_VERIFY = (hostname, session) -> true;
    14 
    15     public static void httpGet(String path) {
    16         StringBuffer tempStr = new StringBuffer();
    17         String responseContent = "";
    18         HttpURLConnection conn = null;
    19         try {
    20             // Create a trust manager that does not validate certificate chains
    21             trustAllHosts();
    22             URL url = new URL(path);
    23             HttpsURLConnection https = (HttpsURLConnection) url.openConnection();
    24             if (url.getProtocol().toLowerCase().equals("https")) {
    25                 https.setHostnameVerifier(DO_NOT_VERIFY);
    26                 conn = https;
    27             } else {
    28                 conn = (HttpURLConnection) url.openConnection();
    29             }
    30             conn.connect();
    31             System.out.println("地址:" + path + ", success, result: " + conn.getResponseCode() + " " + conn.getResponseMessage());
    32             // HttpURLConnection conn = (HttpURLConnection)
    33             // url.openConnection();
    34 
    35             // conn.setConnectTimeout(5000);
    36             // conn.setReadTimeout(5000);
    37             // conn.setDoOutput(true);
    38 
    39             InputStream in = conn.getInputStream();
    40             conn.setReadTimeout(10 * 1000);
    41             BufferedReader rd = new BufferedReader(new InputStreamReader(in,
    42                     "UTF-8"));
    43             String tempLine;
    44             while ((tempLine = rd.readLine()) != null) {
    45                 tempStr.append(tempLine);
    46             }
    47             responseContent = tempStr.toString();
    48             System.out.println(responseContent);
    49             rd.close();
    50             in.close();
    51         } catch (Exception e) {
    52             logger.error("地址:{}, ins error", e);
    53         } finally {
    54             if (conn != null) {
    55                 conn.disconnect();
    56             }
    57         }
    58     }
    59 
    60     /**
    61      * Trust every server - dont check for any certificate
    62      */
    63     public static void trustAllHosts() {
    64 
    65         // Create a trust manager that does not validate certificate chains
    66         TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {
    67 
    68             public java.security.cert.X509Certificate[] getAcceptedIssuers() {
    69                 return new java.security.cert.X509Certificate[]{};
    70             }
    71 
    72             public void checkClientTrusted(X509Certificate[] chain, String authType) {
    73 
    74             }
    75 
    76             public void checkServerTrusted(X509Certificate[] chain, String authType) {
    77 
    78             }
    79         }};
    80 
    81         // Install the all-trusting trust manager
    82         // 忽略HTTPS请求的SSL证书,必须在openConnection之前调用
    83         try {
    84             SSLContext sc = SSLContext.getInstance("TLS");
    85             sc.init(null, trustAllCerts, new java.security.SecureRandom());
    86             HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
    87         } catch (Exception e) {
    88             System.out.println("trustAllHosts is error" + e);
    89         }
    90     }
    91 
    92 }

    转载:

    https://ningyu1.github.io/site/post/53-ssl-cert-3/

  • 相关阅读:
    pat00-自测5. Shuffling Machine (20)
    Spiral Matrix
    Search in Rotated Sorted Array II
    Search in Rotated Sorted Array
    Best Time to Buy and Sell Stock II
    4Sum
    3Sum Closest
    3Sum
    MySQL存储过程、函数和游标
    Word Ladder
  • 原文地址:https://www.cnblogs.com/yhc-love-cl/p/14577640.html
Copyright © 2011-2022 走看看