首页 > 解决方案 > 使用 Mitmproxy 后,Android 中没有互联网连接

问题描述

我已将安卓手机(三星 Galaxy S8)配置为使用代理。我可以连接到 mitm.it。我还可以看到 Mitmproxy 捕获的一些请求。

但是,当我尝试在 Google 中搜索任何内容时,我没有互联网连接。

关于发生了什么以及如何解决它的任何提示?

标签: proxymitmproxy

解决方案


Android 7.1 及更高版本不再允许使用用户手动添加的自定义证书,但如果您的手机具有超级用户访问权限,则可以通过 ADB 使其工作。

Android 将其系统证书存储在/system/etc/security/cacerts/. 如果您查看您的设备,您会看到证书具有散列名称,例如。“a1234b0d.0”。要拦截应用程序流量,您需要找出证书的哈希值

openssl x509 -inform PEM -subject_hash_old -in mitmproxy-ca-cert.pem | head -1

然后相应地重命名您的证书

mv mitmproxy-ca-cert.pem <your_hash_value_in_here_without_carets>.0

最后将其移动到您设备的系统证书所在的位置。但是,为此,您需要先重新挂载系统目录才能获得写入权限

adb shell su -c "mount -o rw,remount,rw /system"
adb push your_certificate /sdcard/your_certificate
adb shell su -c "mv /sdcard/your_certificate /system/etc/security/cacerts/your_certificate"
adb shell su -c "chmod 644 /system/etc/security/cacerts/your_certificate"
adb reboot

如果这不起作用,我记得(虽然不是来源)阅读有关 Android Nougat 的信息也没有关于 2 年以上过期的证书。mitmproxy 创建的证书应该没问题。不过,Burpsuite 或 Fiddler 对我不起作用。


推荐阅读