1、使用到的环境
win10
酷派5892(安卓4.3)手机已经root过,并打开了开发者模式
2、需要用到软件
mitmproxy6.0.2(使用高版本,有些app不能访问)
openssl(选下,在证书出问题会用到)
adb(选下,同上)
3、mitmproxy安装
1)可以使用pip安装,一般都是最新版。
pip install mitmproxy
2)官网安装
但是有些老旧app会提示证书验证失败,所以我选择第二种方法,到官网下低版本安装。注意用迅雷下不了,直接浏览器下就行。
mitmproxy官网https://www.mitmproxy.org/
进入官网点击other downloads(图1),再点more downloads(图2)
图1
图2
然后选择6.0.2版本,进入后选择window-installer.exe下载
图3
图4
后面直接安装就行了。
3)目前最新版是8.1.1,之所以安装老版本,是因为安装了mitmproxy新版 ,有些老旧的软件会出现证书验证失败的问题(图5,6),换成6.0.2版就可以了。(Client TLS handshake failed。好像是tls出了问题,具体我也不知道。)
图5
图6
4、证书安装
1)pc证书安装
安装mitmproxy之后,开始菜单中点击一下打开mitmproxy,在系统盘用户目录下就会生成一个.mitmproxy目录。点击其中的mitmproxy-ce.p12安装证书。
直接下一页、下一页就行,到图7页面的时候选择第二个,浏览,选择受信任的跟证书颁发机构,确定,下一页。
注意:完成后,会弹出警告框,点是就行。
图7
图8
2)手机端的证书安装
把电脑端.mitmproxy目录下的mitmproxy-ca-cert.cer证书,通过数据线发送到手机内存的根目录(其他目录会出现无法识别)
图9
打开手机的设置,下拉找到“安全”这个选项,进去后选择“从内置存储安装”(为什么证书文件要放在内存根目录,就是这里放在其他目录或sd卡中会识别不到)。
图10
在弹出的界面中选择传入的证书文件,弹出的对话框中点“确定”就行了,之后会有小提示,但是很快就消失,不同手机不一样。
图11
3)遇到的问题
上面的安装方法虽然能用,但是在访问首页页面的时候,会有下图的提示,这个时候就需要用到openssl和adb这两个工具了,把证书添加到系统受信任证书中。
图12
在命令行中输入如下内容查看.mitmproxy目录下mitmproxy-ca-cert.pem的hash码。回车后会看到图13中的c8750f0d。
把mitmproxy-ca-cert.pem复制一份名字改成c8750f0d.0,把它使用数据线传到手机内存根目录
openssl x509 -inform PEM -subject_hash_old -in mitmproxy-ca-cert.pem
图13
然后命令行输入adb shell ,今日adb命令行模式(数据线连接手机和电脑)
adb shell
图14
在该命令行下输入 su - 切换到root用户
su -
然后使用如下命令,将c8750f0d.0复制一份到cacerts目录,后面还要看一下复制过来的文件权限是多少,一般644就可以。
cp /storage/emulated/0/c8750f0d.0 /system/etc/security/cacerts/
之后进入手机的设置→安全→受信任的凭证,在系统标签下,下拉就能找到mitmproxy这个证书了。重启一下浏览器,再访问https网址就不会出现安全警告了。
图15
5、总结
1)安装步骤
下载mitmproxy→安装mitmproxy→启动mitmproxy→关闭mitmproxy→安装pc证书→安装手机端证书
2)注意
以上是个人的安装过程以及遇到的问题,不同的环境下可能以上方法不太适用。
3)openssl和adb都是需要安装后才能使用的
4)使用mitmproxy的过程中,遇到三个问题
一个是安装了mitmproxy新版 ,有写老旧的软件会出现证书验证失败的问题,换成6.0.2版就可以了。
还有就是安装完证书后,在手机上浏览器访问https页面时有安全警告,把证书安到系统证书目录就可以了。
最后一个问题,安装完,设置好代理后,手机无法上网,主要是mitmproxy被win10防火墙拦截了,把软件放开就行了。
小白一个,第一个使用mitmproxy,遇到问题总结一下,如有不妥之处,还请赐教。
本人原创,转载请注明出处