Android 7 导入系统证书,实现https抓包

前言

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

解决有二种方案:

  1. 在app清单文件AndroidManifest.xml中开启网络安全配置,信任用户证书,重新打包APP;
  2. 将代理程序的证书安装至Android的系统目录

系统证书导入

证书准备

环境需求

  1. 一台已root的android设备
  2. openssl

①将Filddler或者其他抓包程序的证书导出,一般为xxx.cer或者xxx.pem

②使用openssl的x509指令进行cer证书转pem证书 和 用md5方式显示pem证书的hash值

// 1.证书转换,已经是pem格式的证书不需要执行这一步
openssl x509 -inform DER -in xxx.cer -out cacert.pem


// #2. 进行MD5的hash显示
openssl版本在1.0以上的版本的执行这一句
openssl x509 -inform PEM -subject_hash_old -in cacert.pem

openssl版本在1.0以下的版本的执行这一句
openssl x509 -inform PEM -subject_hash -in cacert.pem

将pem证书重命名
mv cacert.pem 347bacb5.0

将新证书放入手机系统证书目录

系统证书目录位置,需要拷贝至此目录必须拥有root权限
可以使用root explorer工具操纵系统目录
/system/etc/security/cacerts
重启手机就可以使证书生效了

原文地址:https://www.cnblogs.com/supdon/p/14510907.html