Как отключить проверку сертификатов в Java?

Пользователь

от carlo.cummerata , в категории: Java , год назад

Как отключить проверку сертификатов в Java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от jeremy_larkin , 5 месяцев назад

@carlo.cummerata 

Чтобы отключить проверку сертификатов в Java, можно создать собственный X509TrustManager и установить его в качестве менеджера сертификатов по умолчанию. Например, так:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
TrustManager[] trustAllCerts = new TrustManager[] {
   new X509TrustManager() {
      public java.security.cert.X509Certificate[] getAcceptedIssuers() {
        return null;
      }
      public void checkClientTrusted(
        java.security.cert.X509Certificate[] certs, String authType) {
      }
      public void checkServerTrusted(
        java.security.cert.X509Certificate[] certs, String authType) {
      }
   }
};

SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

// Отключаем проверку хоста
HostnameVerifier allHostsValid = new HostnameVerifier() {
  public boolean verify(String hostname, SSLSession session) {
    return true;
  }
};
HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid);


Однако стоит отметить, что отключение проверки сертификатов существенно снижает безопасность вашего приложения и может привести к тому, что ваше приложение станет уязвимым к атакам типа MITM (Man-in-the-middle). Поэтому отключайте проверку сертификатов только в том случае, если уверены в том, что это абсолютно необ