如何解决Chrome证书透明度导致的流量拦截失败问题
绕过Google证书透明度限制,实现Chrome及移动应用TLS/WebSocket流量拦截的稳定方案
核心思路
通过Magisk自定义模块修改系统证书信任配置,禁用证书透明度(CT)检查,替代临时重装Magisk的方案,实现长期稳定的流量拦截。
分步操作指南
1. 构建Magisk模块文件(路径不存在则手动创建)
先在本地电脑创建一个名为CT-Bypass的文件夹,里面放以下3个文件:
- module.prop(模块标识文件):
id=ct-bypass name=CT Bypass for Traffic Interception version=1.0 versionCode=1 author=YourID description=Disable certificate transparency checks to allow proxy interception - service.sh(开机执行脚本):
#!/system/bin/sh # 给Chrome设置持久化调试模式,禁用CT检查 am set-debug-app -w --persist com.android.chrome # 覆盖系统网络安全配置,全局禁用CT强制检查 settings put global network_security_config_file /data/local/tmp/network_security_config.xml - network_security_config.xml(自定义安全配置):
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config cleartextTrafficPermitted="true"> <trust-anchors> <certificates src="system" /> <certificates src="user" /> <!-- 信任用户安装的证书(比如Burp) --> </trust-anchors> <certificate-transparency> <policy overridesPinning="true"> <trust-anchors> <certificates src="system" /> <certificates src="user" /> </trust-anchors> <disable /> <!-- 完全禁用CT检查 --> </policy> </certificate-transparency> </base-config> </network-security-config>
2. 推送文件到Android设备
确保设备已Root并开启ADB调试,连接电脑后执行以下命令:
- 推送整个模块文件夹到Magisk模块目录(不存在则手动创建
/data/adb/modules/):adb push CT-Bypass /data/adb/modules/ - 推送安全配置文件到临时目录:
adb push network_security_config.xml /data/local/tmp/
3. 设置权限并生效
- 给脚本和配置文件添加正确权限:
adb shell chmod 755 /data/adb/modules/CT-Bypass/service.sh adb shell chmod 644 /data/local/tmp/network_security_config.xml - 重启设备让模块生效,或者手动加载模块:
adb shell su -c "magisk --load-module /data/adb/modules/CT-Bypass"
4. Chrome专项配置(可选)
如果全局配置对Chrome无效,可直接给Chrome加启动参数禁用CT:
adb shell am start -n com.android.chrome/com.google.android.apps.chrome.Main --args --ignore-certificate-errors --disable-certificate-transparency
把这条命令加到service.sh里,就能实现开机自动生效。
5. 验证拦截效果
- 将Burp证书安装到系统目录(比用户证书更稳定):
- 把Burp导出的DER格式证书转成PEM,重命名为
99-burp.pem(前缀数字确保优先级):openssl x509 -inform DER -in burp.cer -out 99-burp.pem - 推送到系统证书目录并设权限:
adb push 99-burp.pem /system/etc/security/cacerts/ adb shell chmod 644 /system/etc/security/cacerts/99-burp.pem
- 把Burp导出的DER格式证书转成PEM,重命名为
- 配置设备代理到Burp,打开Chrome和目标应用,发起WebSocket或HTTPS请求,检查Burp是否能正常捕获流量。
常见问题排查
- /data/adb/modules/路径不存在:升级Magisk到最新稳定版,该目录会自动生成;也可以手动创建后重启设备。
- 模块生效几天后失效:检查系统是否自动OTA更新,建议关闭系统自动更新;或者重新执行模块加载命令。
内容的提问来源于stack exchange,提问作者Dscarve
相关产品推荐
相关产品推荐

