给Android7及以上的手机安装系统级证书,实现HTTPS的抓包

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

无法ROOT但是有源码或者使用反编译的看这里:

信任用户证书(CA),实现Android7及以上HTTPS抓包

准备

  • 一台已root的手机
  • Openssl

证书生成

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

  • 使用opensslx509指令进行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之后,重启手机就可以使证书生效了

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐