【测试方法】Android 7 及以上系统信任用户自定义证书

一、背景

测试工作经常会启用代理服务来协助测试(用于抓包、mock 数据、埋点自动化测试等),而 Android 7 及以上系统版本不再信任用户自己导入的 CA 证书,导致无法在 Android 7 及以上系统的设备上处理 https 协议的请求。

二、操作步骤(以 mitmproxy 的证书文件为例)

原理:将用户准备的 CA 证书转移到 Android 系统证书目录下。

  1. 准备一台 root 设备(模拟器也可);

  2. 准备好证书文件(mitmproxy-ca-cert.cer),从 mitmproxy 官网下载:https://mitm.it/,Android 需先连上代理才能访问该网站);

  3. 在 PC 上输入以下指令:

    openssl x509 -inform PEM -subject_hash_old -in mitmproxy-ca-cert.cer -noout
    >>>c8750f0d    #输出对应的Android系统的证书文件名
    
    #将该证书文件名重命名为上述转换后的Android系统对应的名称,加上后缀 “.0”
    cp mitmproxy-ca-cert.cer c8750f0d.0    
    #传入手机
    adb push c8750f0d.0 /sdcard
  4. 获取手机的 root 权限,并将证书文件转移到系统证书目录:
    #获取手机的 root 权限
    adb shell
    su
    #以读写方式重新挂载文件系统
    mount -o rw,remount /system
    #将前面上传至/sdcard目录的证书文件转移至系统证书文件夹下
    mv /sdcard/c8750f0d.0 /system/etc/security/cacerts
    #修改证书权限
    chmod 644 /system/etc/security/cacerts/c8750f0d.0

  5. 完成以上步骤后,已将文件证书导入至系统证书目录下,可打开:【设置】-【安全与隐私】-【受信任的凭证】-【系统】检查是否导入成功:

  6. 导入并信任系统证书完成后,就可以开始设置代理服务对 https 协议的请求进行操作。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值