前言:
在使用模拟器抓包时,发现无法安装导入证书,无法正常抓包。
这是因Android7.0之后新版本系统的安全限制导致,遇到这类问题的可参考以下方法步骤操作。
一、用Charles或者fiddler导出证书
1.Charles:Help--SSL Proxying--Save Charles Root Certificate
2.Fiddler:Tools--Options--HTTPS--Actions--Export Root Certificate to Desktop
二、安装OpenSSL
1.安装地址
Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions
2.安装默认安装,最后的捐款取消勾选。之后配置环境变量,将openssl安装路径bin的路径
(例如 C:\OpenSSL-Win64\bin)加入到操作系统的系统环境变量Path里面。
三、使用OpenSSL签发证书
1. 在cmd中输入(点击键盘win+R,呼出运行窗口,输入cmd即可打开cmd操作界面)
openssl x509 -subject_hash_old -in <Certificate_File>
2.* <Certificate_File>为此前导出的证书(charles.pem),这个路径为绝对路径
四、重命名已签发的证书
1.将 charles.pem 这个文件名改为 生成的数字加.0,例如4950d4d7.0
五、模拟器配置
1.设置中心勾选开启root权限,必须使用root,并到磁盘设置内将可写入功能开启。
2.下载MT管理器按照并赋予其root权限(安装的时候,会进行提示,允许就行)
六、使用MT管理器App移动证书文件
1.将已签发的证书xxxxx.0传入到模拟器内
2.打开MT管理器在左侧栏查找xxxxx.0的文件位置
3.在MT管理器的右侧栏进入 /system/etc/security/cacerts/目录
4.长按左侧的xxxxx.0文件,点击复制,会自动复制到 /system/etc/security/cacerts/里面
5.鼠标左键长按住“右侧(复制出的)xxxxx.0文件”,点击"属性"
6、点击权限,将所见的权限(读、写、执行)全部勾选上,最终为777
七、重启模拟器
最终可以正常抓包了