时间:2025-01-14 来源:网络 人气:
你有没有遇到过这种情况?手机里装了各种APP,想抓个包看看HTTPS请求,结果发现安卓7.0以后,手机竟然不信任自己安装的证书了!抓包时,HTTPS请求就像被施了魔法一样,怎么解码都解码不了。别急,别急,今天就来教你一招,让你的安卓手机轻松添加系统证书,让HTTPS请求不再神秘!
你知道吗,安卓7.0以后,系统对证书的信任机制发生了变化。简单来说,就是安卓不再信任用户手动安装的证书了。这也就意味着,如果你想在手机上抓包HTTPS请求,就必须将证书添加到系统信任列表中。
首先,你得有一个证书。如果你已经有了,那就太好了,直接跳过这一步。如果没有,那我们就来聊聊如何导出证书。
以Charles为例,操作超级简单:
1. 打开Charles,点击“Help”菜单,然后选择“SSL Proxying”。
2. 在弹出的窗口中,点击“Save Charles Root Certificate...”。
3. 证书就导出来了,保存到你的电脑上。
证书导出来之后,接下来就要把它搬到安卓手机上了。不过,在此之前,你得知道安卓证书的储存格式。
证书路径:/system/etc/security/cacerts
文件命名格式:<证书Hash值>.编号
比如,你的证书Hash值是0dd2455e,那么文件名就是0dd2455e.0。
这一步需要用到openssl工具。如果你没有安装,赶紧去下载一个吧!
1. 打开命令行窗口,输入以下命令(根据你的证书格式选择):
- .cer格式证书:`openssl x509 -inform DER -subjecthashold -in 证书文件.cer`
- .pem格式证书:`openssl x509 -inform PEM -subjecthashold -in 证书文件.pem`
2. 执行命令后,你会得到一个hash值,这就是你的证书的指纹。
这一步需要用到openssl工具,将证书转换为安卓系统预设格式。
1. 打开命令行窗口,输入以下命令(根据你的证书格式选择):
- .cer格式证书:`openssl x509 -inform DER -text -in xxx.cer > 0dd2455e.0`
- .pem格式证书:`openssl x509 -inform PEM -text -in xxx.pem > 0dd2455e.0`
2. 执行命令后,你会得到一个系统预设格式的证书文件。
1. 将生成的证书文件复制到手机上。
2. 使用文件管理器打开/system/etc/security/cacerts文件夹。
3. 将证书文件粘贴到该文件夹中。
4. 重启手机。
现在,你可以再次尝试抓包HTTPS请求了。你会发现,这次请求可以成功解码了!
通过以上步骤,你就可以轻松地在安卓手机上添加系统证书,让HTTPS请求不再神秘。不过,需要注意的是,这个过程需要手机有root权限,且操作过程中要小心谨慎,以免造成手机损坏。希望这篇文章能帮到你!