Comment faire de Apache Commons HttpClient 3.1 ignorer HTTPS certificat d'invalidité?

Je suis en train d'essayer d'obtenir l'Apache Commons HttpClient bibliothèque (version 3.1) pour ignorer le fait que le certificat du serveur ne peut être établie comme digne de confiance (comme en témoigne la levée d'une exception 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).

Je n'ai trouver Établir une connexion à un serveur HTTPS à partir de Java, et d'ignorer la validité du certificat de sécurité ainsi que Désactiver la Validation de Certificat en Java les Connexions SSL, mais le a accepté de répondre à la première est pour HttpClient 4.0 (malheureusement je ne peut pas mettre à niveau, sauf quelqu'un peut m'indiquer la direction de la façon d'utiliser deux versions différentes de la même bibliothèque dans le même projet), bien qu'il ne dispose une autre réponse avec un peu plus d'un lien mort qui est censé être allé à un 3.x solution. Le code lors de la deuxième page ne semble pas avoir d'effet quand j'ai un peu ajusté version de celui-ci (en gros, la déclaration des classes dans la vieille mode plutôt que d'utiliser des anonymes, de ceux en ligne, ainsi que l'application de TLS en plus de SSL, à l'aide de SSL pour le HTTPS par défaut prise en usine comme dans l'exemple de code).

De préférence, j'aimerais quelque chose qui est thread-/instance-large, de sorte que toute HttpClient instance (et/ou les classes) en cours de création de l'intérieur de ma servlet code (pas une autre servlet s'exécute dans le même conteneur) va utiliser le laxisme de la validation du certificat de la logique, mais à ce point, je commence à sentir comme rien ne va, tant qu'il accepte le certificat auto-signé comme valide.

Oui, je suis conscient qu'il y a des implications en matière de sécurité, mais la seule raison pour laquelle j'ai besoin est pour des fins de test. L'idée est de mettre en œuvre une option de configuration qui contrôle si normalement certificats non fiables sont fiables ou non, et de la laisser dans "ne faites pas confiance non digne de confiance de certificats de serveur en tant que par défaut. De cette façon, il peut facilement être activée ou désactivée dans le développement, mais le faire dans la production nécessite de sortir de son chemin.

OriginalL'auteur a CVn | 2011-10-07