1. 問題描述
換了了一個榮耀8測試機,按照charles的老套路去安裝證書,準備抓https的包,發現死活不成功,charles報錯如下:
You may need to configure your browser or application to trust the Charles Root Certificate.
2. 問題解決
查資料發現,這是Android 7.0的問題,在7.0上,用戶自己安裝的證書是不被app應用信任的(安全性考慮,防止charles這種做接口逆向,監聽數據)
解決辦法如下(只能抓你自己開發的app的https的包):
1. 在你自己的app下,xml目錄下新建一個文件:res/xml/network_security_config.xml ,配置在debug模式下信任用戶證書,內容如下:
<network-security-config>
<debug-overrides>
<trust-anchors>
<!-- Trust user added CAs while debuggable only -->
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
2. 在AndroidManifest中使用它:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config" ... >
...
</application>
</manifest>
好了,這樣就ok了
如果覺得本文幫到了你,請留言、點贊,和關注,期待和你一起進步!
參考資料
http://blog.csdn.net/yinyignfenlei/article/details/72782898
https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/