• 安卓证书问题


    把用户证书安装成系统证书

    引言

    安卓7.0及以上的系统对于证书的安全策略做了修改,系统允许每个应用可以定义自己的可信CA集,有部分应用默认只会信用系统预装的CA证书,而不会信任用户安装的CA证书,而在安卓中,用户安装的证书都是用户证书,所以无论是fiddler还是Charles我们都只是把他们的根证书安装到用户证书,这些应用并不使用他们,所以我们安装的证书是无效的。

    解决办法

    既然知道了原因,那就总是有解决办法的,我们只要把代理软件的证书安装成系统证书就可以了
    以fiddler证书为例:
    1、先将fiddler证书下载下来,默认名称为:FiddlerRoot.cer
    2、使用OpenSSL将cer文件转换成crt文件:
    openssl x509 -inform DER -in FiddlerRoot.cer -out FiddlerRoot.crt
    3、根据证书获取证书hash值,得到类似 269953fb 字符串:
    openssl x509 -inform PEM -subject_hash_old -in FiddlerRoot.crt
    4、将FiddlerRoot.crt重命名为 269953fb.0
    5、将证书复制到手机 /system/etc/security/cacerts/目录
    (手机必须root)
    以adb方式为例:
    1.adb root
    2.adb remount
    3.adb push 269953fb.0 /sdcard/
    4.adb shell
    5.mv /sdcard/269953fb.0 /system/etc/security/cacerts/
    6.chmod 644 /system/etc/security/cacerts/
    7.reboot重启设备
    (PS : remount of /system failed :Read -only file 问题:
    解决办法1、adb disable -verity 2、adb reboot 然后在执行上面adb命令)

    重启完成就能在系统证书中看到fiddler证书了,

    PS:IOS设备不存在这个问题,如果嫌麻烦,直接上IOS就行~

    安卓10

    于安卓10采用了某些安全策略,将系统分区/system挂载为只读,就算你root了也没用,无法写入系统分区也就无法导入系统证书,在使用抓包分析的时候,很多app只认系统证书,不认用户证书。

    唯一的方法是魔改安卓10的rom,

    或者使用magisk的一些模块

    https://blog.csdn.net/Loucius/article/details/104944735?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.control

  • 相关阅读:
    使用QOAuth来进行新浪/腾讯微博验证(二)
    很不错的Utility库,C#4扩展 各种功能齐全,两行代码搞定图片转字符
    使用QOAuth来进行新浪/腾讯微博验证(一)
    可怜的小猪&香农熵
    消息队列MQ如何保证消息不丢失
    40 亿个 QQ 号码如何去重,bitmap去重
    参数的设置
    自动化测试的十个要点
    LR学习中的一个低级错误
    Windows下用CMake编译libuv
  • 原文地址:https://www.cnblogs.com/clbao/p/14312231.html
Copyright © 2020-2023  润新知