- 前提:
1、mac电脑配置charles,windows配置Fiddler ok。
2、小米手机配置代理ok。
- 问题:
通过浏览器下载的crt文件,提示证书无效,安装失败。
- 解决问题:
1、不要用小米手机自带的浏览器下载crt文件。
先下载一个第三方的浏览器,比如UC,在UC中下载crt文件。
2、安装证书:不要直接点击crt文件进行安装。
正确安装方法有2个:
其一:设置——WiFi——高级设置——安装证书
其二:设置——更多设置——系统安全——从SD卡安装里
- 问题:
Android使用Charles抓取Https请求的报文时,Android和Charles都正确安装了证书之后出现抓包失败,报错SSLHandshake: Received fatal alert: certificate_unknown
- 原因:
安卓7之后调整了安全策略会导致部分手机抓包失败,请参考此链接:https://android-developers.googleblog.com/2016/07/changes-to-trusted-certificate.html
- 解决问题:
手机上已经正确安装了Charles证书:
1、在你的AndroidManifest.xml文件中添加如下配置:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config"
... >
...
</application>
</manifest>
2、在res目录下新建一个xml文件夹,之后在res/xml/路径下新建文件network_security_config.xml
res/xml/network_security_config.xml:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config>
<domain includeSubdomains="true">你要抓取的域名</domain>
<trust-anchors>
<certificates src="user"/>//信任用户自己安装的证书
</trust-anchors>
</domain-config>
</network-security-config>
我也是百度了很长时间,亲测有效。
欢迎关注我的微信公众号:DD有话说