java在請求某些不受信任的https網站時會報:pkix path building failed
解決方法一:使用keytool手動導入證書,為jre環境導入信任證書
方法二:使用代碼下載下傳證書儲存
方法三:伺服器不信任我們自己建立的證書,是以在代碼中忽略證書信任問題。
最後注意:檢查eclipse/myeclipse的jdk或jre,是否為你導入證書的jre。
注意:myeclipse是自帶jdk的,jdk中自帶jre,而我們通過指令導入的jre是系統環境變量下path的jre。
兩者很可能不是同一個,要改myeclipse的配置。(具體操作很簡單,windows-->preferences-->搜尋jre)
方法二代碼實作
功能:把目标host證書儲存到jre/lib/security/jssecacerts檔案,親測有效
方法三代碼實作
隻要在建立connection之前調用兩個方法:
由于有網友這麼說:這樣做是放棄了證書的認證,那你們用https還有什麼意義呢?就好像搭建了一個https的server,最後在認證失敗的時候放棄認證,直接選擇信任,那麼這個https的server就淪落為一個http的server了,而且性能要比http差
在下就沒有測試,請自行測試。