通过openssl导入证书到系统证书目录解决安卓7以上系统无法抓包问题
背景:
测试过程中通常需要抓包定位问题,但安卓7.0及以上系统增加了系统证书验证。给手机安装https证书的方式无法满足7以上系统抓包要求。
原理:
手机/模拟器 需满足root要求,在此基础上将fiddler或charles的证书导入手机系统证书目录下,以满足系统证书校验。
步骤:
1、将fiddler/Cls证书导出到本地
2、通过OpenSSL获取证书的哈希值(下一步要用)
命令:
//.cer格式证书 openssl x509 -inform DER -subject_hash_old -in <证书文件.cer> //.pem格式证书 openssl x509 -inform PEM -subject_hash_old -in <证书文件.pem>
3、生成以证书哈希值命名的证书文件
//cer格式 openssl x509 -inform DER -text -in xxx.cer > 哈希值.0 //pem格式 openssl x509 -inform PEM -text -in xxx.pem > 哈希值.0
4、将哈希值文件push到手机系统证书目录,并授予权限
adb push xxxxxx.0 /system/etc/security/cacerts/ chmod 644 /system/etc/security/cacerts/xxxxxx.0
5、重启手机,生效