背景
使用抓包软件(以 Charles 为例)抓取APP的 https 请求时,Android和Charles都正确安装了证书却出现抓包失败,报错:
Failure Client SSL handshake failed: An unknown issue occurred processing the certificate (certificate_unknown)
解决方案
导出.pem
获取文件名
1 | openssl x509 -subject_hash -in /Users/chenyulong01/Desktop/Untitled.pem |
07cc5b45,就是我们获取到的文件名。
修改文件名
就是将我们从charles中导出的xxxxx.pem文件名改为07cc5b45.0
push到手机中(需要root)
/system/etc/security/cacerts/
放入的过程中,上述文件后缀名的数字是为了防止文件名冲突的,比如如果两个证书算出的Hash值是一样的话,那么一个证书的后缀名数字可以设置成0,而另一个证书的后缀名数字可以设置成1(07cc5b45.1)。
证书安装成功
此时你应该可以在 设置->安全->信任的凭据 的系统标签页看到你新加入的证书,将其启用即可顺利抓包。
参考资料
Android 7.0 之后抓包 unknown 和证书无效的解决方案(无需改代码)
Ursprünglicher Link: http://nunu03.github.io/2019/09/20/Android-7-0之后抓包证书无效的解决方案/
Copyright-Erklärung: 转载请注明出处.