2017-06-01 84 views
1

我試圖連接到在Android Studio中使用自簽名證書的網站。我收到提示接受Android Studio中的自簽名證書Java代碼

java.security.cert.CertPathValidatorException:信任錨 證書路徑沒有找到

的,我稱之爲openStream()的URL對象。

由於我的代碼位於測試環境中,因此我正在尋找解決方案來完全禁用證書檢查或明確允許證書。

昨天我花了幾個小時尋找解決方案,但每個指南都有幾年的歷史,並使用折舊的HTTP庫。

回答

0

除了@CommonsWare的回答,如果您的目標是API 14(ISC)或更高版本,您可以選擇在應用程序之外的設備上安裝額外的可信證書。說明可以找到here

使用此方法安裝的證書由設備上的所有應用程序使用。

在API 14-23上,默認情況下用戶安裝的證書是可信的。然而,在API 24(Nougat)上,用戶添加證書的處理已更改,並且默認情況下不受信任。爲了使用戶值得信賴定義證書,下面的代碼添加到network config

<network-security-config> 
     <base-config> 
      <trust-anchors> 
       <!-- Trust preinstalled CAs --> 
       <certificates src="system" /> 
       <!-- Additionally trust user added CAs --> 
       <certificates src="user" /> 
      </trust-anchors> 
     </base-config> 
</network-security-config> 

更多信息有關與辦證的牛軋糖的變化可以發現here

+0

沒有建議的修復程序似乎爲我工作。我的問題是模擬器本身阻止了證書嗎?我找不到在Nexus 5仿真器中添加證書的方法。 – Keifer

+0

@Keifer,那麼我建議你在問題中添加更多信息:emuletor類型,操作系統版本,你嘗試過的和失敗的 – Vasiliy