Wie man Apache-Commons-HttpClient-3.1 ignorieren HTTPS-Zertifikat Nichtigkeit?

Ich versuche den Apache-Commons-HttpClient-Bibliothek (version 3.1), die Tatsache zu ignorieren, dass das server-Zertifikat hergestellt werden kann, als vertrauenswürdig (wie bewiesen durch die geworfene Ausnahme 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).

Habe ich Stellen Sie eine Verbindung zu einem HTTPS-server aus Java und ignorieren Sie die Gültigkeit des Sicherheitszertifikats sowie Deaktivieren Sie die Zertifikat-Validierung in Java-SSL-Verbindungen, aber die akzeptierte Antwort auf die erste ist für HttpClient 4.0 (leider kann ich nicht aktualisieren, , es sei denn jemand kann mich in die Richtung der Verwendung von zwei verschiedenen Versionen der gleichen Bibliothek innerhalb des gleichen Projekts), obwohl es eine andere Antwort mit wenig mehr als ein Toter link, der angeblich ging zu einem 3.x Lösung. Der code auf der zweiten Seite scheint überhaupt keine Wirkung, wenn ich eine leicht angepasste version von es (im Prinzip deklarieren Sie die Klassen in der alten Mode statt anonymer inline -, als auch als Anwendung, um TLS neben SSL mit SSL für die Standard-HTTPS-socket-factory, wie in dem Beispiel-code).

Vorzugsweise würde ich gerne etwas, der thread-/Instanz-breit, so dass jede HttpClient Instanz (und/oder Verwandte Klassen) erstellt werden von meinem servlet-code (nicht ein anderes servlet läuft in den gleichen container) die lax-Zertifikat Validierung Logik, aber an diesem Punkt beginne ich zu fühlen, wie etwas funktioniert, solange es akzeptiert das selbst signierte Zertifikat als gültig.

Ja, ich bin mir bewusst, dass es Auswirkungen auf die Sicherheit, aber der einzige Grund warum brauche ich das überhaupt für Testzwecke. Die Idee ist die Umsetzung einer Konfigurations-option, die steuert, ob die Regel für nicht Vertrauenswürdige Zertifikate vertrauenswürdig sind oder nicht, und lassen Sie es in "don' T Vertrauen, nicht-Vertrauenswürdige server-Zertifikate" als Standard. So kann es leicht an-oder ausgeschaltet werden in der Entwicklung, aber tun Sie es in der Produktion erfordern wird, geht aus dem Weg.

InformationsquelleAutor a CVn | 2011-10-07
Schreibe einen Kommentar