背景
抓包很常见,以前做开发的时候也经常用
无论是charles还是finddler等等
你是否遇到过https一篇红和unkown的情况?
2024年了,都是https了把,http屈指可数
那么我们如何抓包https呢
证书
其实说白了,证书才是关键
我们抓包的本质,是将网络请求代理到某个软件上
换句话说,自己当“中间人”
那么我们就需要安装这个代理软件的证书了
Charles
1.本机PC安装证书




这样就安装完毕了
2.浏览器安装根证书
基本上看到这篇文章的,用的应该不是Edge就是Chrome
我们以Edge为例,其他浏览器自行搜索
打开浏览器设置
搜索证书

我们可以发现有个证书管理

很显然,我们需要导入证书到受信任的CA里
这会儿我们的Charles就可以正常抓https了
3.安卓手机安装证书(安卓7以上)
下载证书
下载以后
大伙肯定都知道,安卓7以上,不让把证书安装到受信任的证书里
那么我要是非要放进去呢
Android 7.0 之后抓包 unknown 和证书无效的解决方案
这里摘抄一下大哥说的话
将抓包软件的证书安装成系统证书(需 ROOT)
系统证书目录:/system/etc/security/cacerts/其中的每个证书的命名规则如下:
.
文件名是一个 Hash 值,而后缀是一个数字。文件名可以用下面的命令计算出来:
openssl x509 -subject_hash_old -in
后缀名的数字是为了防止文件名冲突的,比如如果两个证书算出的 Hash 值是一样的话,那么一个证书的后缀名数字可以设置成 0,而另一个证书的后缀名数字可以设置成 1
Windows用户openssl这个命令没有的话,用git bash就可以了
在座的么有不会用git的人吧
1 | openssl x509 -subject_hash_old -in charles-proxy-ssl-proxying-certificate.pem |

那接下来直接把charles-proxy-ssl-proxying-certificate.pem改名为7515195b.0
然后把7515195b.0移到安卓设备/system/etc/security/cacerts/里
那这里有人会问了,我手上的安卓没有Root,咋整呢
呐呐呐,我就知道有人会问了
所以这里又有两种方案
3.1 安卓模拟器(亲测有效)
这里我们不得不又说明一下借鉴自哪里
使用charls抓包微信小程序的解决方案(终极解决,各种坑不怕,亲测可用,不服来战!)
没错,使用安卓模拟器,我也和这位博主一样,要抓小程序
所以我也使用了夜神模拟器(等我有影响力了,麻烦夜神给我打钱)
不过要注意,使用它的安卓7版本即可,12版本亲测没有root,9版本未测试
接着我们把上述的手机端的hash命名文件,放到对应目录下
即把7515195b.0移到安卓设备/system/etc/security/cacerts/里
这时候你会发现。嘻嘻,还是不能抓包
原因是模拟器的根证书里并没有出现根证书
这里告诉一下大家证书名,免得不好找XK72 Ltd
其实根本原因是,证书的权限不对
那么接下来,告诉大家怎么去修改权限
3.1.1 adb链接模拟器
找到模拟器的安装目录
里头有个bin目录,目录下有个nox_adb.exe
例如D:\Safety\Nox\bin\nox_adb.exe
在这里打开cmd,并使用nox_adb.exe devices查看模拟器是否连接上了adb
如果没连接上,重启模拟器即可
3.1.2 给证书文件添加权限
1 | nox_adb devices |
如果chmod执行报错Read-only file system,那执行下面的
1 | adb shell |
这下应该会重启模拟器,重启完,模拟器配代理,欧了~
你的小Charles应该就能抓https了
3.2 安卓上的虚拟机搭配xposed(思路,未测试)
给个思路
搭配
开始你的真机https抓包吧
4.补一个设置https

填两个*就好了

BurpSuite
其实是一样的
先找到自己的代理端口

使用内置浏览器打开并访问该端口

点击下载证书 https://burp

你会下到一张der证书
我们只需要把他变成pem格式
1 | openssl x509 -inform DER -outform PEM -text -in cacert.der -out cacert.pem |
其他一切同上
2025-07-13补充
安卓真机抓包
朋友购买了一台已经root的红米k40给我
信息如下:
1 | 红米K40 已root |
且已刷入面具Magisk,LSPosed之类的
这两个怎么刷,我暂时不知道,没刷过
那么真机端怎么移入证书
1. 下载HttpCanary
我也不知道原版的从哪下,随便下一个得了
2.导出证书
左侧边栏-设置-SSL证书设置-导出HttpCanary根证书
两个版本,一个是pem,一个是和上述一样的xxx.0
3.安装pem证书
一般都是打开设置,搜索证书,然后安装即可
小米入口:设置-安全-更多安全设置-更多安全设置-加密与凭据-安装证书-CA证书
装就完事了
装好以后可以查看已安装的证书,用户证书下有这个证书,系统证书没有
我们可以通过以下命令验证系统证书有没有
1 | adb shell |
4.使用MoveCertificate模块移动证书到系统中
访问地址,手机下载压缩包,打开Magisk安装这个压缩包,启用模块,然后重启
1 | adb shell |
验证证书是否存在在系统CA中
正常情况下,现在系统CA中就已经有了这张证书