windows电脑和iphone,charles抓包工具证书过期如何修复

今天调试一个手机上的问题,本打算抓包看下,结果一打开就发现无法正常连接,检查一遍发现是证书又过期了。Charles 证书过期会导致无法正常抓取 HTTPS 流量,需要重新生成并安装证书。我的电脑是windows10系统,手机是 iPhone se2。修复证书过期可以按照如下步骤进行。

通用步骤:在 Charles 中重新生成证书

首先需要在 Charles 内生成新的证书,覆盖过期证书:

  1. 打开 Charles,点击顶部菜单栏 Help(帮助)→ SSL Proxying(SSL 代理)→ Reset Charles Root Certificate(重置 Charles 根证书)。这里是关键,重置后,会生成新的证书,通常是从今天到明年今天。
  2. 弹出提示框时点击 OK,Charles 会自动生成新的根证书(有效期通常为几年)。

Windows 系统:删除旧证书并安装新证书

1. 删除过期的旧证书

  • 按下 Win + R,输入 certmgr.msc 打开「证书管理器」。

  • 依次展开 受信任的根证书颁发机构 → 证书,在列表中找到 Charles Proxy CA 相关证书(可通过 “颁发者” 筛选)。

  • 右键点击过期证书,选择 删除,确认删除。

    其他证书目录如果有误导入的情况,也可以删除

2. 安装新生成的证书

导入证书.jpg

  • 在 Charles 中,点击 Help → SSL Proxying → Install Charles Root Certificate(安装 Charles 根证书)。

  • 弹出证书导入向导,点击 下一步,选择 “将所有证书放入以下存储”,点击 浏览,选择 受信任的根证书颁发机构,点击 确定

  • 完成向导,点击 完成,此时会弹出安全警告,点击 确认信任。

    注意:根证书只要导入"受信任的根证书颁发机构"即可,其他目录无需导入。

3. 验证证书有效性

  • 回到「证书管理器」的 “受信任的根证书颁发机构 → 证书”,找到新的 Charles Proxy CA,查看 “有效期” 是否为最新(非过期状态)。

    验证证书是否有效.jpg

IPhone手机证书过期处理

如果同时使用 Charles 调试手机(iOS),移动端证书也需要更新:

  1. 在手机上通过 Charles 提供的链接重新下载证书(Charles 中点击 Help → SSL Proxying → Install Charles Root Certificate on a Mobile Device or Remote Browser,按提示操作)。
  2. 删除手机上已过期的 Charles 证书(iOS:设置 → 通用 → VPN 与设备管理;Android:设置 → 安全 → 证书管理)。
  3. 安装新下载的证书,并在系统中信任(iOS 需在 “通用 → 关于本机 → 证书信任设置” 中开启信任)。

顺利的话,通过以上三步就可以完成安装。

不过意外总会有,比如我安装的时候,无法打开charles 的绑定的临时域名 chls.pro/ssl去下载证书。显示一直加载,很慢,总之就是打不开。这个时候可以换个思路。就是想办法把证书文件拷贝到手机。

首先将我们生成根证书给找到,可以用charles 的保保存根证书功能。

保存根证书到指定目录.jpg 保存根证书.jpg

保存成功之后,就是想办法弄到手机里了。这里方法不限,看你用哪种方式拷贝方便。比如用ITools 连线网手机里拷贝,或者无线拷贝,或者用云盘,或者发邮件,用微信等等等等,各种方式目标就是放到手机里。比如我这里用的右键发送到了手机。手机客户端打开 charles.cer 之后,只是显示文件名和大小,并没有直接提示安装证书(早期ios版本好像会直接提示安装证书)。

手机无法识别cer文件.jpg

这时候,只要将此文件保存到 IPhone 的文件里面即可。然后在文件中 cer 文件就会被识别为证书。

cer证书保存到文件.jpg

这时候点击这个文件,就会提示你去手机的设置里面去安装证书了。

描述文件显示在设置页面.jpg

点击红点提示,就会看到里面有 charles 证书一项。点击他会提示安装,然后确认安装即可。安装完之后,在继续之前的步骤:在系统中信任(iOS 需在 “通用 → 关于本机 → 证书信任设置” 中开启信任),过期证书可以给他关闭。

启用ssl证书.jpg

最后验证

重启 Charles 和需要调试的浏览器 / 应用,尝试抓取 HTTPS 流量。如果证书生效,HTTPS 请求会显示为 “已解密” 状态,不再提示证书错误。charles 配置和抓包的怎么使用这里就不详细说了。相信用过的都会用了。