Ignorer Certificat SSL Erreurs avec Java

Client Http Apache. Vous pouvez voir le code ici:

String url = "https://path/to/url/service";
HttpClient client = new HttpClient();
PostMethod method = new PostMethod(url);

//Test whether to ignore cert errors
if (ignoreCertErrors){
  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 sslContext = SSLContext.getInstance("SSL");
    sslContext.init(null, trustAllCerts, new SecureRandom());
    HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
  } catch (Exception e){
    e.printStackTrace();
  }
}

try {

  //Execute the method (Post) and set the results to the responseBodyAsString()
  int statusCode = client.executeMethod(method);
  resultsBody = method.getResponseBodyAsString();

} catch (HttpException e){
  e.printStackTrace();
} catch (IOException e){
  e.printStackTrace();
} finally {
  method.releaseConnection();
}

C'est la méthode que tout le monde dit d'utiliser de l'ignorer Certificat SSL Erreurs (seulement cette mise en place pour la mise en scène, il ne sera pas utilisé dans la production). Cependant, je suis encore en train de l'exception suivante/stacktrace:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building unable to find valid certification path to requested target

Des conseils serait génial. Si je fais le TrustManager mal, ou si je devrais être en cours d'exécution de la méthode HTTP Post différemment, de toute façon.

Merci!

Merci de lire la réponse à la question que vous avez posté (comme je l'ai fait à de nombreuses reprises). Je suis en train de faire ce qu'il dit, mais je suis encore à l'origine du problème. Merci.
Veuillez coller votre code dans le cadre de votre question, de sorte qu'il est autonome. Pas besoin d'utiliser Gist/Github pour de petites choses comme cela.
'Tout le monde' est faux à ce sujet. En ignorant les problèmes de certificat SSL rend radicalement d'insécurité, particulièrement vulnérables aux man-in-the-middle attaques. Voir la discussion dans RFC 2246. Il convient également de noter que la mise en œuvre de X509TrustManager dans votre lien, avec la plupart des autres que j'ai vu, n'est pas conforme à la spécification.
L'affiche n'a pas été de poser pour une conférence sur la sécurité. Il voulait savoir comment faire quelque chose.

OriginalL'auteur andrewpthorp | 2012-08-21