Ich baue einen einfachen App-Monitor, um eine unserer API-URLs abzurufen und uns eine E-Mail zu senden, wenn er keinen HTTP 200-Statuscode von der Antwort erhält (dies würde auf unsere API hinweisen) ist aus irgendeinem Grund nicht erreichbar).SSL-Fehler "Peer nicht authentifiziert" mit HttpClient 4.1
Ich bin mit Httpclient 4.1 (Dies ist wichtig, weil seine API stark von 3.x unterscheidet).
Unsere API mit SSL sicher ist jedoch eingeben:
in einem Web-Browser leitet Sie auf
Ohne verursacht Fehler.
Wenn Httpclient versucht, diese URL zu schlagen (http://example.com/our-api
), schlägt es mit einer javax.net.ssl.SSLPeerUnverifiedException
Ausnahme mit einer Meldung, die besagt:
Peer nicht
authentifiziert Ich sehe das viel für andere Menschen geschieht wie es durch this Post nachgewiesen wird (die auch einige Möglichkeiten bietet, dieses Problem zu umgehen - eine Lösung, die ich heute Abend tatsächlich versuchen werde zu implementieren).
Was dieser andere Beitrag (und die anderen ähnlichen dazu) nicht tun, erklärt, warum das überhaupt passiert! Also, anstatt zu fragen "Wie repariere ich das?" Ich dachte, ich würde fragen „warum ist das passiert?“ Bevor ich weiter mit einem der vorgeschlagenen Lösungen gehen aufschalten, ich würde gerne wissen, was das Problem ist, dass ich ;-)
Könnten Sie den vollständigen Stack-Trace schreiben? –
Es sollte beachtet werden, dass diese Nachricht auf seltsame Programmierung im HttpClient zurückzuführen sein muss. Es hätte einen früheren "Handshake-Fehler" von SSLException gegeben, und das hätte ausgelöst werden sollen. Offensichtlich wurde die Ausführung zu einem SSLSession.getPeerCertificate() -Aufruf fortgesetzt, der die einzige API ist, die die Ausnahme im Titel auslöst. – EJP