windows电脑和iphone,charles抓包工具证书过期如何修复
- 作者: 刘杰
- 来源: 技术那些事
- 阅读:67
- 发布: 2025-08-06 10:09
- 最后更新: 2025-08-06 10:09
今天调试一个手机上的问题,本打算抓包看下,结果一打开就发现无法正常连接,检查一遍发现是证书又过期了。Charles 证书过期会导致无法正常抓取 HTTPS 流量,需要重新生成并安装证书。我的电脑是windows10系统,手机是 iPhone se2。修复证书过期可以按照如下步骤进行。
通用步骤:在 Charles 中重新生成证书
首先需要在 Charles 内生成新的证书,覆盖过期证书:
- 打开 Charles,点击顶部菜单栏 Help(帮助)→ SSL Proxying(SSL 代理)→ Reset Charles Root Certificate(重置 Charles 根证书)。这里是关键,重置后,会生成新的证书,通常是从今天到明年今天。
- 弹出提示框时点击 OK,Charles 会自动生成新的根证书(有效期通常为几年)。
Windows 系统:删除旧证书并安装新证书
1. 删除过期的旧证书
-
按下
Win + R
,输入certmgr.msc
打开「证书管理器」。 -
依次展开 受信任的根证书颁发机构 → 证书,在列表中找到 Charles Proxy CA 相关证书(可通过 “颁发者” 筛选)。
-
右键点击过期证书,选择 删除,确认删除。
其他证书目录如果有误导入的情况,也可以删除
2. 安装新生成的证书
-
在 Charles 中,点击 Help → SSL Proxying → Install Charles Root Certificate(安装 Charles 根证书)。
-
弹出证书导入向导,点击 下一步,选择 “将所有证书放入以下存储”,点击 浏览,选择 受信任的根证书颁发机构,点击 确定。
-
完成向导,点击 完成,此时会弹出安全警告,点击 是 确认信任。
注意:根证书只要导入"受信任的根证书颁发机构"即可,其他目录无需导入。
3. 验证证书有效性
-
回到「证书管理器」的 “受信任的根证书颁发机构 → 证书”,找到新的 Charles Proxy CA,查看 “有效期” 是否为最新(非过期状态)。
IPhone手机证书过期处理
如果同时使用 Charles 调试手机(iOS),移动端证书也需要更新:
- 在手机上通过 Charles 提供的链接重新下载证书(Charles 中点击 Help → SSL Proxying → Install Charles Root Certificate on a Mobile Device or Remote Browser,按提示操作)。
- 删除手机上已过期的 Charles 证书(iOS:设置 → 通用 → VPN 与设备管理;Android:设置 → 安全 → 证书管理)。
- 安装新下载的证书,并在系统中信任(iOS 需在 “通用 → 关于本机 → 证书信任设置” 中开启信任)。
顺利的话,通过以上三步就可以完成安装。
不过意外总会有,比如我安装的时候,无法打开charles 的绑定的临时域名 chls.pro/ssl
去下载证书。显示一直加载,很慢,总之就是打不开。这个时候可以换个思路。就是想办法把证书文件拷贝到手机。
首先将我们生成根证书给找到,可以用charles 的保保存根证书功能。
保存成功之后,就是想办法弄到手机里了。这里方法不限,看你用哪种方式拷贝方便。比如用ITools 连线网手机里拷贝,或者无线拷贝,或者用云盘,或者发邮件,用微信等等等等,各种方式目标就是放到手机里。比如我这里用的右键发送到了手机。手机客户端打开 charles.cer 之后,只是显示文件名和大小,并没有直接提示安装证书(早期ios版本好像会直接提示安装证书)。
这时候,只要将此文件保存到 IPhone 的文件
里面即可。然后在文件中 cer 文件就会被识别为证书。
这时候点击这个文件,就会提示你去手机的设置里面去安装证书了。
点击红点提示,就会看到里面有 charles 证书一项。点击他会提示安装,然后确认安装即可。安装完之后,在继续之前的步骤:在系统中信任(iOS 需在 “通用 → 关于本机 → 证书信任设置” 中开启信任),过期证书可以给他关闭。
最后验证
重启 Charles 和需要调试的浏览器 / 应用,尝试抓取 HTTPS 流量。如果证书生效,HTTPS 请求会显示为 “已解密” 状态,不再提示证书错误。charles 配置和抓包的怎么使用这里就不详细说了。相信用过的都会用了。