Frage

Ich arbeite an einer Bibliothek, die in anderen Anwendungen integriert werden soll. Ich habe mit einem HTTPS-Server zu kommunizieren, und ich bin mit Apache Commons Httpclient 3.1. Ich habe meine eigenen Schlüsselspeicher und Notwendigkeit, eine Protokoll über: Protocol.registerProtocol. Ich frage mich, ob es einen Weg war dies für meine bestimmte Instanz des Client registrieren und nicht statisch -. So kann ich Chaos nicht auf alle anderen Instanzen und niemand verwirrt mich auf

Ich sah etwas, wo ich kann den Kunden HostConfiguration und Anruf erhalten setHost , mit einem Protokoll, aber es scheint nicht zu Arbeit richtig. Ich Registrierung es wie:

HostConfiguration config = client.getHostConfiguration();
config.setHost(remoteUrl.getHost(), remoteUrl.getPort(), new Protocol("https", new MyProtocolSocketFactory(), 443));

aber, wenn eine Verbindung herzustellen versucht, schlägt der SSL-Handshake, während es funktioniert, wenn Protocol.registerProtocol mit den gleichen Parametern. Der Fehler ist der Standard:

Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

War es hilfreich?

Lösung

Upgrade auf 4 und Httpcomponents leave Client 3.x allein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top