一、背景
测试工作经常会启用代理服务来协助测试(用于抓包、mock 数据、埋点自动化测试等),而 Android 7 及以上系统版本不再信任用户自己导入的 CA 证书,导致无法在 Android 7 及以上系统的设备上处理 https 协议的请求。
二、操作步骤(以 mitmproxy 的证书文件为例)
原理:将用户准备的 CA 证书转移到 Android 系统证书目录下。
-
准备一台 root 设备(模拟器也可);
-
准备好证书文件(mitmproxy-ca-cert.cer),从 mitmproxy 官网下载:https://mitm.it/,Android 需先连上代理才能访问该网站);
-
在 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
-
获取手机的 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
-
完成以上步骤后,已将文件证书导入至系统证书目录下,可打开:【设置】-【安全与隐私】-【受信任的凭证】-【系统】检查是否导入成功:文章来源:https://www.toymoban.com/news/detail-702437.html
-
导入并信任系统证书完成后,就可以开始设置代理服务对 https 协议的请求进行操作。文章来源地址https://www.toymoban.com/news/detail-702437.html
到了这里,关于【测试方法】Android 7 及以上系统信任用户自定义证书的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!