通过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、重启手机,生效

原文地址:https://www.cnblogs.com/mncasey/p/14315074.html