android安装证书为系统证书
问题来源
最近在抓手机上的包,但是出现一个有意思的问题,即12345@Overridepublic void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { Log.d("sslError",error.toString());}
webviewClient 会接到 error code为 3,在官网上查到3 代表是不被信任
解决经过
在官方博客上发现从7.0开始应用就不信任用户的证书了,所以我的任务是把证书添加到系统里,找到解决方案如下:
- 安装用户证书。
- 把证书从
/data/misc/user/0/cacerts-added
移动到/system/etc/security/cacerts
- 再次抓包试下
诡异的事情出现了! 这次sslErrorCode 返回了5,invalid,因为我的证书是用burp导出的,而且在系统里可以看见是启用的,所以很困惑。然后折腾了半天用charles导出证书再试就可以了。所以问题可能出在burp的证书上。
折腾。
在试了半天还是不行后,我决定翻一翻源码,于是我在我的aosp根目录下grep -inr 'new SslErrorHandler(
结果没有找到调用!我觉得这太不可思议了。列入未解之谜吧。可能和chromium有关系