本质是macOS拒绝信任res-downloader自签名TLS证书,需将其导入“系统”钥匙串并设为“始终信任”,关键步骤包括:确认cert.crt存在、终端执行sudo security add-trusted-cert -d -r trustRoot命令、钥匙串中展开信任设置。
macos 应用安装后出现“证书不受信任”提示,本质是系统拒绝信任该应用自签名或私有ca签发的tls证书。这类问题常见于网络抓包、资源嗅探类工具(如 res-downloader、charles、fiddler),它们需作为中间人代理解密https流量,因此必须让系统信任其根证书。解决关键在于:把证书正确导入“系统”钥匙串,并显式设为“始终信任”,且确保它处于受信根证书位置。
确认证书文件是否存在
很多问题其实卡在第一步——证书根本没生成。res-downloader 等工具通常在首次启动时生成 cert.crt 文件,路径为:
~/Library/Preferences/res-downloader/cert.crt
在终端执行以下命令检查:
- ls -la ~/Library/Preferences/res-downloader/cert.crt —— 若提示“No such file”,请先完整启动一次应用,让它自动生成证书
- 若路径不同(如某些版本用
~/.res-downloader/cert.crt),可全局搜索:find ~ -name "cert.crt" 2>/dev/null
终端一键安装并设为系统级信任
这是最稳定、可复现的方式,绕过图形界面权限限制。务必使用 sudo 并指定 System.keychain:
- 运行命令:sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /路径/to/cert.crt
- 输入管理员密码(输入时无光标反馈,输完直接回车)
- 成功后建议创建锁文件避免重复提示:touch ~/Library/Preferences/res-downloader/install.lock
- 注意:
-d表示删除旧同名证书再导入,-r trustRoot是关键,它将证书加入“受信任的根证书颁发机构”列表
手动验证与补救:钥匙串访问设置
即使命令执行成功,有时 macOS 仍不生效,原因常是证书被误导入“登录”钥匙串,或信任设置未展开。请按此流程核对:
让 macOS 自动化像说话一样简单 —— 用代码控制你的 Mac,无需学习 AppleScript 系统要求 macOS 14+ (Sonoma) Python 3.9+ 需要开启:辅助功能 + 屏幕录制权限
- 打开“钥匙串访问” → 左侧选择“系统”钥匙串(不是“登录”)
- 在右上角搜索框输入“res-downloader”或证书名称,找到对应证书
- 双击打开证书 → 展开“信任”项 → 将“当使用此证书时”下拉菜单设为“始终信任”
- 关闭窗口,提示保存时点“更新设置”
- 若“信任”选项灰色不可点,说明证书不在“系统”钥匙串,需拖拽重导入或用命令强制指定
排除系统级干扰因素
证书装对了,但依然报错?可能是底层环境异常:
- 校准系统时间:进入“系统设置 > 通用 > 日期与时间”,开启“自动设置日期与时间”。证书有效期校验极度依赖准确时间
- 检查 macOS 更新影响:14.x 及以上版本会在系统更新后重置部分信任策略。只要重做一次上述终端安装即可恢复
- 避免多代理冲突:确认没有其他工具(如 Clash、Surge)同时启用系统代理,否则可能导致 TLS 握手失败,表现为“证书无效”假象
- 重启相关服务:执行 sudo killall -HUP mDNSResponder 刷新DNS缓存;必要时重启 res-downloader 和浏览器










