# Mac Charles抓iOS报TSL/SSL握手失败完整排查方案 ## 一、先确认最容易遗漏的4个核心必做项90%报错根源 ### 1. iOS必须开启「证书完全信任」仅装pem没用 1. iPhone Safari打开 chls.pro/ssl下载描述文件并安装 2. 设置 → 通用 → VPN与设备管理确认描述文件显示**已安装** 3. 设置 → 通用 → 关于本机 → 拉到底 **证书信任设置** 4. 打开 Charles Proxy CA 右侧开关绿色启用 关键点iOS10.3安装证书默认不信任不开启这一步必报TSL安全连接失败 ### 2. Mac端Charles证书必须设为「始终信任」 1. Charles菜单Help → SSL Proxying → Install Charles Root Certificate 2. 弹出钥匙串找到 Charles Proxy CA双击打开详情 3. 展开**信任**下拉「使用此证书时」改为**始终信任**输密码保存 4. 关闭钥匙串重启Charles ### 3. Charles必须开启SSL代理全局解密 1. Charles顶部菜单 Proxy → SSL Proxying Settings 2. 勾选 **Enable SSL Proxying** 3. Add添加 Host: *Port:443全局解密所有HTTPS保存 ### 4. 网络与代理配置校验 1. Mac和iPhone连**同一个WiFi**不能手机热点、双路由、5G/2.4G隔离 2. Charles查看本机IPHelp → Local IP Address 3. iPhone WiFi手动代理服务器填上面的MacIP端口默认8888 4. Charles弹出设备接入弹窗时必须点**Allow**允许设备连接 5. Mac关闭防火墙/杀毒拦截端口8888 ## 二、证书异常重置你已装最新pem仍报错优先执行 旧证书过期、参数不兼容iOS高版本会直接TSL握手失败 1. CharlesHelp → SSL Proxying → Reset Charles Root Certificate 2. 确认重置Charles生成全新根证书 3. 重新导出pemHelp → SSL Proxying → Save Charles Root Certificate 4. 重复上面步骤Mac钥匙串信任 iPhone重新下载安装证书开启信任 5. 完全关闭Charles重开手机开关WiFi代理重试 ## 三、iOS系统干扰项排查 1. 关闭**无线局域网助理**设置→蜂窝网络底部会切流量破坏代理 2. 关闭VPN、AdGuard、屏蔽类插件会拦截SSL握手 3. 仅用Safari测试网页微信/抖音等App大概率开启**证书固定SSL Pinning** - 现象Safari能正常访问App直接TSL报错属于App安全防护Charles无法解密需frida绕过 4. iOS17/18新增安全限制不要用USB共享网络做代理仅纯WiFi ## 四、Mac系统额外坑点 1. 钥匙串区分「登录」和「系统」分类证书要导入**登录**钥匙串系统根证书无法修改信任 2. 多版本Charles残留旧证书钥匙串搜索Charles全部删除后重置证书 3. Charles端口被占用Proxy → Proxy Settings更换端口8889重试 ## 五、快速自检流程按顺序操作 1. Reset SSL证书 → 重启Charles 2. Mac钥匙串重新信任Charles CA 3. iPhone删除旧Charles描述文件Safari重新下载安装 4. 证书信任设置打开Charles开关 5. SSL Proxying添加 *:443 6. 同一WiFi代理IP端口正确Charles允许设备接入 7. Safari打开任意https网站测试 ## 补充区分报错场景 1. **所有网页都TSL错误**证书未完全信任/证书过期/SSL代理没开 2. **Safari正常App报错**App开启证书固定PinningCharles无解 3. **关闭代理网络正常开代理直接失败**证书信任链路断裂重置证书即可
Mac Charles抓iOS报TSL/SSL握手失败完整排查方案
# Mac Charles抓iOS报TSL/SSL握手失败完整排查方案 ## 一、先确认最容易遗漏的4个核心必做项90%报错根源 ### 1. iOS必须开启「证书完全信任」仅装pem没用 1. iPhone Safari打开 chls.pro/ssl下载描述文件并安装 2. 设置 → 通用 → VPN与设备管理确认描述文件显示**已安装** 3. 设置 → 通用 → 关于本机 → 拉到底 **证书信任设置** 4. 打开 Charles Proxy CA 右侧开关绿色启用 关键点iOS10.3安装证书默认不信任不开启这一步必报TSL安全连接失败 ### 2. Mac端Charles证书必须设为「始终信任」 1. Charles菜单Help → SSL Proxying → Install Charles Root Certificate 2. 弹出钥匙串找到 Charles Proxy CA双击打开详情 3. 展开**信任**下拉「使用此证书时」改为**始终信任**输密码保存 4. 关闭钥匙串重启Charles ### 3. Charles必须开启SSL代理全局解密 1. Charles顶部菜单 Proxy → SSL Proxying Settings 2. 勾选 **Enable SSL Proxying** 3. Add添加 Host: *Port:443全局解密所有HTTPS保存 ### 4. 网络与代理配置校验 1. Mac和iPhone连**同一个WiFi**不能手机热点、双路由、5G/2.4G隔离 2. Charles查看本机IPHelp → Local IP Address 3. iPhone WiFi手动代理服务器填上面的MacIP端口默认8888 4. Charles弹出设备接入弹窗时必须点**Allow**允许设备连接 5. Mac关闭防火墙/杀毒拦截端口8888 ## 二、证书异常重置你已装最新pem仍报错优先执行 旧证书过期、参数不兼容iOS高版本会直接TSL握手失败 1. CharlesHelp → SSL Proxying → Reset Charles Root Certificate 2. 确认重置Charles生成全新根证书 3. 重新导出pemHelp → SSL Proxying → Save Charles Root Certificate 4. 重复上面步骤Mac钥匙串信任 iPhone重新下载安装证书开启信任 5. 完全关闭Charles重开手机开关WiFi代理重试 ## 三、iOS系统干扰项排查 1. 关闭**无线局域网助理**设置→蜂窝网络底部会切流量破坏代理 2. 关闭VPN、AdGuard、屏蔽类插件会拦截SSL握手 3. 仅用Safari测试网页微信/抖音等App大概率开启**证书固定SSL Pinning** - 现象Safari能正常访问App直接TSL报错属于App安全防护Charles无法解密需frida绕过 4. iOS17/18新增安全限制不要用USB共享网络做代理仅纯WiFi ## 四、Mac系统额外坑点 1. 钥匙串区分「登录」和「系统」分类证书要导入**登录**钥匙串系统根证书无法修改信任 2. 多版本Charles残留旧证书钥匙串搜索Charles全部删除后重置证书 3. Charles端口被占用Proxy → Proxy Settings更换端口8889重试 ## 五、快速自检流程按顺序操作 1. Reset SSL证书 → 重启Charles 2. Mac钥匙串重新信任Charles CA 3. iPhone删除旧Charles描述文件Safari重新下载安装 4. 证书信任设置打开Charles开关 5. SSL Proxying添加 *:443 6. 同一WiFi代理IP端口正确Charles允许设备接入 7. Safari打开任意https网站测试 ## 补充区分报错场景 1. **所有网页都TSL错误**证书未完全信任/证书过期/SSL代理没开 2. **Safari正常App报错**App开启证书固定PinningCharles无解 3. **关闭代理网络正常开代理直接失败**证书信任链路断裂重置证书即可