信任用户CA,实现Android7及以上HTTPS抓包
Android7以后,系统不再信任用户级的证书,只信任系统级的证书,所以我们要让APP信任用户自己的证书。
注:需要源码,或者反编译
没有源码的看这里:
准备
- APP源码
- 手机
用户证书授权
1. 网络安全配置
在清单文件AndroidManifest.xml
中开启网络安全配置,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config"
... >
...
</application>
</manifest>
2. 信任用户CA
新建文件res/xml/network_security_config.xml
来进行网络安全的配置,通过trust-anchors
来设置信任的证书,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config>
<trust-anchors>
<certificates src="user" />
<certificates src="system"/>
</trust-anchors>
</base-config>
</network-security-config>
其中的<certificates src="user" />
就是让APP信任用户的证书。
配置完成,重新打包APP之后就可以抓取HTTPS包了。
3. 配置仅用于调试的CA
我们也可以只配置在DEBUG阶段才信任用户的CA,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<debug-overrides>
<trust-anchors>
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>