Android7以后,系统不再信任用户级的证书,只信任系统级的证书,所以要抓包就需要把我们的代理程序证书安装至Android的系统目录中

准备

  • 一台已root的安卓手机
  • Openssl
  • 证书生成

以mitmproxy为例,找到它的证书一般为xxx.cer或者xxx.pem,我的路径是/root/.mitmproxy/mitmproxy-ca.pem

如果是cer格式,需要使用openssl的x509指令进行cer证书转pem证书

openssl x509 -inform DER -in mitmproxy.cer -out mitmproxy.pem

用md5方式显示pem证书的hash值

#openssl版本在1.0以上的版本的执行这一句
openssl x509 -inform PEM -subject_hash_old -in /root/.mitmproxy/mitmproxy-ca.pem

#openssl版本在1.0以下的版本的执行这一句
openssl x509 -inform PEM -subject_hash -in /root/.mitmproxy/mitmproxy-ca.pem

#查看openssl版本—
openssl version

将输出的类似347bacb5的值进行复制并把pem证书重命名

mitmproxy-ca.pem重命名为347bacb5.0

将新证书放入手机系统证书目录,手机系统目录位置是(必须拥有root权限):/system/etc/security/cacerts

最后重启手机生效

参考文章