我正在構建一個簡單的應用程序監視器來輪詢我們的一個API URL併發送給我們,如果它無法從響應中獲取HTTP 200狀態代碼(這將表明我們的API由於某種原因而下降)。SSL HttpClient 4.1的「Peer Not Authenticated」錯誤
我使用的HttpClient 4.1 (這是重要的,因爲它的API從3.x的不同大大)。
我們的API是安全與SSL,但是進入:
到Web瀏覽器重定向到
不會造成任何錯誤。
當HttpClient的嘗試打這個URL(http://example.com/our-api
),它失敗了javax.net.ssl.SSLPeerUnverifiedException
異常有消息指出:
對未通過身份驗證
我看到這種情況出現了很多其他人正如this的帖子所證明的那樣(這也提供了一些方法來規避這個問題 - 事實上,我將在今晚嘗試和實施這個解決方案)。
這篇帖子(和其他類似的帖子)沒有做的是解釋爲什麼這首先發生!所以,而不是問「我該如何解決這個問題?」我想我會問「爲什麼會發生這種情況?」在我提出解決方案之一繼續前進之前,我想知道我試圖解決的問題是什麼;-)
你可以發佈完整的堆棧跟蹤? – 2012-07-31 23:23:38
應該指出的是,這個消息一定是由於HttpClient中的奇怪編程造成的。之前會有一個SSLException的握手失敗,這是應該拋出的。很明顯,執行繼續執行到SSLSession.getPeerCertificate()調用,該調用是在標題中引發異常的唯一API。 – EJP 2012-08-01 22:01:35