美文网首页
安卓7.0以上手机写入系统证书

安卓7.0以上手机写入系统证书

作者: 八月欢喜 | 来源:发表于2022-02-15 11:49 被阅读0次

    前言:

    记录一场手动写入系统证书

    前景

    谷歌在安卓7.0修改了安全策略,用户添加的CA证书不能再用于安全连接,对于https传输的数据就抓取不到了,会显示<unknown>。
    我的解决方法是将charles的CA证书安装进系统信任的证书目录下,这样在开启charles代理的时候,系统就会认为CA证书安全,从而可以获取https数据。

    准备工作:

    1. 一台已root过的手机,我用的是小米5,开启开发者选项连接电脑。
    2. 下载charles证书,电脑端浏览器输入chls.pro/ssl即可下载,如果未下载也可以在charles>>help>>SSL Proxying>>Save Charles Root Certificate保存证书到本地文件夹

    具体步骤:

    1. 重命名证书
      安卓系统的安全证书在 /system/etc/security/cacerts/目录下,进入adb shell,打开目录就能看到这些证书文件,文件名是Hash值加数字后缀。后缀名的数字是为了防止文件名冲突的,比如如果两个证书算出的Hash值是一样的话,那么一个证书的后缀名数字可以设置成0,而另一个证书的后缀名数字可以设置成1

    用 “openssl x509 -inform PEM -subject_hash_old -in charles-ssl-proxying-certificate.pem”计算出hash值,并将后缀设为0


    image.png

    生成hash后,替换对应名称重新生成文件
    //cer格式
    openssl x509 -inform DER -text -in xxx.cer > 0dd2455e.0
    //pem格式
    openssl x509 -inform PEM -text -in xxx.pem > 0dd2455e.0

    1. 打开文件
      然后打开这个文件,将这个挪到文件的开头,然后保存


      image.png
    2. 挪动文件
      首先将文件<hash>.0 push到/sdcard/Download目录下(cmd 要进入文件目录下操作)
      然后复制到/system/etc/security/cacerts/目录下

    3. 重启,去系统证书看结果


      image.png

    然后通过设置charles代理就可以查看到https的数据了。

    相关文章

      网友评论

          本文标题:安卓7.0以上手机写入系统证书

          本文链接:https://www.haomeiwen.com/subject/tyoklrtx.html