macOS 上信任 mitmproxy CA 证书教程

适用场景:如果你在使用 mitmproxy(HTTP/HTTPS 代理工具)时遇到证书验证错误(如运行 WarpVip 被杀死或浏览器警告),这是因为 macOS 默认不信任自签名根证书。本教程基于 macOS Ventura/Sonoma 或更高版本,帮助你生成、导入并信任证书。整个过程需管理员权限。

警告

  • 信任自签名证书会降低 HTTPS 安全(允许代理拦截流量),仅用于开发/测试环境。完成后可撤销信任。
  • WarpVip 可能是第三方工具,运行前验证来源,避免安全风险。从官方 Cloudflare Warp 下载替代品更安全。
  • 备份数据,重启 Mac 后生效。

前提准备

  • 安装 mitmproxy:在终端运行 pip install mitmproxy(或 conda install mitmproxy 如果用 Conda)。
  • 激活环境:确保在正确的 Conda 环境(如 base)中:conda activate base
  • 工具:钥匙串访问(Keychain Access,Spotlight 搜索打开)。

步骤 1: 生成 CA 证书

mitmdump 启动时会自动生成证书文件。

  1. 打开终端,导航到工作目录(如 cd ~/Downloads/dist)。
  2. 运行命令:
    mitmdump --set confdir=~/.mitmproxy
    
    • 输出类似 [时间] HTTP(S) proxy listening at *:8080. 表示启动成功。
  3. 立即按 Ctrl+C 中断(5-10 秒内即可,确保证书写入)。
  4. 验证文件生成:
    ls -la ~/.mitmproxy/
    
    • 应看到 mitmproxy-ca-cert.pemmitmproxy-ca-cert.cer 等文件(时间戳如 2026-01-12)。

如果文件缺失:删除目录重试 rm -rf ~/.mitmproxy && mitmdump --set confdir=~/.mitmproxy,然后 Ctrl+C。

步骤 2: 导入证书到钥匙串

  1. 在终端运行:
    open ~/.mitmproxy/mitmproxy-ca-cert.pem
    
    • 这会用钥匙串访问自动打开并导入证书。
  2. 如果无响应:
    • 用 Finder 导航到 ~/.mitmproxy/(按 Command + Shift + G,输入路径)。
    • 双击 mitmproxy-ca-cert.pem 文件导入。

步骤 3: 在钥匙串访问中设置信任

  1. 打开 钥匙串访问(Spotlight 搜索 “Keychain Access”)。
  2. 左侧选择 系统(System)钥匙串 > 证书(Certificates)类别。
  3. 搜索 “mitmproxy”,找到证书(图标可能有红/黄警告,“× 此证书无法验证”)。
  4. 右键证书 > 获取信息(Get Info)。
  5. 展开 信任(Trust)部分:
    • “当使用此证书时” 下拉菜单设为 始终信任(Always Trust)。
    • 如果有子选项(如 SSL),也设为始终信任。
  6. 点击 确定,输入管理员密码保存。
    • 如果菜单灰色/无法点击
      • 重启 Mac 或注销用户。
      • 终端运行(输入密码):
        sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ~/.mitmproxy/mitmproxy-ca-cert.pem
        

步骤 4: 在系统设置中启用根证书信任(关键步骤)

macOS 有独立开关控制:

  1. 打开 系统设置(苹果菜单 > 系统设置)。
  2. 点击 通用 > 关于本机(About)。
  3. 滚动到底部,点击 证书信任设置(Certificate Trust Settings)。
  4. 找到 “mitmproxy” 或 “mitmproxy CA”:
    • 切换开关到开启(绿色)。
  5. 输入密码确认。
    • 如果列表为空:重新导入证书(步骤 2),然后刷新。

步骤 5: 验证信任

  1. 重新打开钥匙串访问:证书图标应全绿,无警告。
  2. 测试代理:
  3. 运行 WarpVip:
    cd dist  # 你的目录
    xattr -d com.apple.quarantine ./WarpVip  # 移除隔离(如果 killed)
    ./WarpVip
    
    • 如果成功,无证书错误。

排查常见问题

问题 解决方案
证书仍显示“×” 重启 Mac,检查系统设置开关;更新 mitmproxy:pip install --upgrade mitmproxy
open 命令无响应 用 Finder 双击 PEM 文件。
权限不足 用 sudo 运行 mitmdump 或 security 命令。
macOS 版本问题 Sonoma+ 需步骤 4;检查版本:苹果菜单 > 关于本机。

步骤 6: 撤销信任(可选,恢复安全)

  1. 钥匙串访问 > 双击证书 > 信任 > 设回 使用系统默认(Use System Defaults)。
  2. 系统设置 > 证书信任设置 > 关闭 mitmproxy 开关。
  3. 删除证书:右键 > 删除。

额外提示

  • 如果 WarpVip 仍 killed,运行 codesign -dv ./WarpVip 检查签名,或在系统设置 > 隐私与安全性 手动允许。
  • 官方 Warp:从 https://one.one.one.one/ 下载,无需 mitmproxy。
  • 如遇新错误,提供终端日志(如 log show --last 10m | grep mitmproxy)进一步调试。

教程结束!如果需要 PDF 版本或特定调整,告诉我。安全第一~

写文章用