抓包 Android App HTTPS Charles Client SSL handshake failed 问题解决.
相关背景
使用Charles抓包时, 有些APP使用https的可以解开但有些就报这个错,放谷歌查了一些资料,放上解决方案,有类似问题的可以参考一下。
解决方案
-
确保已正确安装证书, Charles已配置好
-
使用
apktool
对apk进行反编译
apktool d example.apk
- 修改
AndroidManifest.xml
配置文件, 在application
节点添加一行代码:
android:networkSecurityConfig="@xml/network_security_config"
- 新增
res/xml/network_security_config.xml
配置文件, 内容为下(替换example.com
为你要对此APP进行抓包的域名):
<network-security-config>
<domain-config>
<domain includeSubdomains="true">example.com</domain>
<trust-anchors>
<certificates src="user"/>
</trust-anchors>
</domain-config>
</network-security-config>
- 使用
apktool
进行编译
apktool b example
- 使用
ApkSign
对第4步编译后的apk进行签名
java -jar signapk.jar certificate.pem key.pk8 example.apk example.sign.apk
- 安装第5步的apk进行抓包吧~
参考
- CSDN MrgcXia的博客 Charles Android 抓包失败SSLHandshake: Received fatal alert: certificate_unknown
- CharlesProxy SSL Certificates
欢迎留言交流~