You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用mitmproxy查找Android应用私有API遇阻求助

问题解决思路

核心原因:证书信任级别差异

Android 7.0(API 24)及以上版本的应用,默认仅信任系统级CA证书,你当前安装的是用户证书,因此APP会拒绝通过mitmproxy代理建立网络连接(Chrome能正常捕获是因为它支持信任用户证书)。iPhone的证书信任机制不同,教程里的步骤应该已经完成了证书的全局信任配置,所以能正常工作。

解决步骤(Android平台)

  • 导出并转换mitmproxy证书格式:
    1. 找到电脑上mitmproxy的证书文件,默认路径为~/.mitmproxy/mitmproxy-ca-cert.pem
    2. 用OpenSSL将证书转为系统认可的DER格式:
      openssl x509 -in mitmproxy-ca-cert.pem -outform DER -out mitmproxy-ca-cert.der
      
    3. 计算证书哈希值并按系统要求重命名:
      # 生成证书哈希值,取输出结果的第一行
      openssl x509 -inform PEM -subject_hash_old -in mitmproxy-ca-cert.pem | head -1
      # 将DER文件重命名为「哈希值.0」,例如哈希值为abcdef01,就命名为abcdef01.0
      mv mitmproxy-ca-cert.der abcdef01.0
      
  • 导入系统证书目录:
    1. 手机需要获取Root权限,将重命名后的证书文件传到/system/etc/security/cacerts/目录
    2. 先挂载系统分区为可写状态:
      mount -o rw,remount /system
      
    3. 修改证书文件权限为644(系统证书的标准权限):
      chmod 644 /system/etc/security/cacerts/abcdef01.0
      
    4. 重启手机,此时mitmproxy证书已成为系统信任证书

其他可能的遗漏点

  • SSL证书锁定(SSL Pinning):部分APP会内置信任的证书列表,即使系统信任了mitmproxy证书,也会拒绝连接。这种情况需要用工具绕过,比如Xposed模块JustTrustMe,或者用Frida执行脚本禁用证书验证。
  • 代理有效性检查:确保手机代理是全局设置,部分APP会绕过系统代理;同时确认电脑防火墙开放了mitmproxy的默认端口(8080),手机和电脑处于同一局域网且IP配置正确。
  • iOS平台补充:如果后续使用iOS设备,iOS 10+需要在「设置-通用-关于本机-证书信任设置」里手动开启mitmproxy证书的信任,才能让所有APP认可该证书。

内容的提问来源于stack exchange,提问作者Raphaël Mushidi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 02:37:25