如何在Genymotion中绕过SSL CA校验以对接自定义API?
解决Genymotion中Burp TLS证书未知错误的方案
针对你遇到的TLS连接错误,核心原因大概率是闭源APK内置证书锁定逻辑,或是证书安装/代理配置存在疏漏,以下是分步排查解决的实用方案:
1. 修正Burp证书的安装方式
不要仅删除系统默认CA,需确保Burp证书同时覆盖系统与用户证书目录:
- 系统证书目录(Android 7.0+需ROOT):
- 用命令生成证书哈希值:
openssl x509 -inform PEM -subject_hash_old -in burp.crt | head -1 - 将Burp的
.crt重命名为<哈希值>.0 - 推送到模拟器
/system/etc/security/cacerts/目录,设置权限chmod 644 <哈希值>.0,重启模拟器
- 用命令生成证书哈希值:
- 用户证书目录:通过模拟器「设置-安全-从SD卡安装证书」导入Burp证书,选择「VPN和应用」用途
2. 绕过APK的证书锁定(Certificate Pinning)
闭源APK通常会硬编码信任的证书,忽略系统CA列表,需用工具强制绕过:
- Frida方案:
- 给模拟器安装Frida,运行命令:
frida -U -f com.your.target.app -l ./universal-ssl-unpinning.js --no-pause(通用反证书锁定脚本可直接本地下载使用)
- 给模拟器安装Frida,运行命令:
- Xposed方案:
- 安装Xposed框架,添加「JustTrustMe」模块并启用,重启模拟器后可强制APP信任所有证书
3. 验证代理与Burp配置
- 确认Genymotion网络代理设置:WLAN长按当前网络,手动设置代理地址为Burp所在主机IP,端口为Burp监听端口(默认8080)
- 检查Burp的「Proxy-Options-SSL Certificate」,确保证书有效且未过期
4. 排查系统兼容性问题
- 确保Genymotion已开启ROOT(在「Settings-A」中开启ROOT选项),Android 7.0+修改系统证书目录必须ROOT权限
- 若证书格式异常,用命令转换:
openssl x509 -in burp.der -inform DER -out burp.crt
5. 基础连通性测试
用模拟器自带浏览器访问https://example.com,若能正常抓包,则说明Burp与证书基础配置无问题,错误根源完全在APK的证书锁定逻辑上
内容的提问来源于stack exchange,提问作者Hamid Shariati
相关产品推荐
相关产品推荐

