给Android7及以上的手机安装系统级证书,实现HTTPS的抓包
Android7以后,系统不再信任用户级的证书,只信任系统级的证书,所以要抓包就需要把我们的代理程序证书安装至Android的系统目录中
无法ROOT但是有源码或者使用反编译的看这里:
准备
- 一台已root的手机
- 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
将第二条指令输出的类似
347bacb5
的值进行复制tips: 查看
openssl
版本的指令openssl version
-
将
pem
证书重命名
使用上面复制的值(类似于347bacb5
)对pem
证书进行重命名mv cacert.pem 347bacb5.0
将新证书放入手机系统证书目录
手机系统目录位置是:
/system/etc/security/cacerts
需要拷贝至此目录必须拥有root权限
重启Android设备以生效
拷贝证书至/system/etc/security/cacerts
之后,重启手机就可以使证书生效了