Java игнорировать проверку сертификата

Я пытаюсь создать несколько примеров проектов Java, которые подключаются к самозаверяющему серверу HTTPS.Кажется, я не могу заставить Java перестать пытаться проверить сертификат. Я не хочу доверять этому сертификату, я просто хочу полностью игнорировать все проверки сертификатов; этот сервер находится внутри моей сети, и я хочу иметь возможность запускать некоторые тестовые приложения, не беспокоясь о том, действителен ли сертификат.

java -Dcom.sun.net.ssl.checkRevocation=false HelloWorld
org.apache.axis2.AxisFault: Connection has been shutdown: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed:  sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

-Dcom.sun.net.ssl.checkRevocation = false didn ' т помочь. Я также попытался добавить следующий код:

public static void DisableCertificateValidation() {
  TrustManager[] trustAllCerts = new TrustManager[]{
    new X509TrustManager() {
      public X509Certificate[] getAcceptedIssuers() { return null; }
      public void checkClientTrusted(X509Certificate[] certs, String authType) { }
      public void checkServerTrusted(X509Certificate[] certs, String authType) { }
    }
  };
  try {
    SSLContext sc = SSLContext.getInstance("SSL");
    sc.init(null, trustAllCerts, new java.security.SecureRandom());
    HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
  } catch (Exception e) {
  }
}

Но проблема все равно осталась. Что здесь происходит?

6
задан Jay Sullivan 13 July 2011 в 16:04
поделиться