mitmproxy是一个中间人角色,供python抓包使用。
本机环境:win10 64位,python3.10.4。首先安装mitmproxy,参考我的文章 记录一下python2和python3在同一台电脑上共存使用并安装各自的库以及各自在pycharm中使用的方法-CSDN博客
一、安装mitmproxy
cmd进入cd C:\Users\LC\AppData\Local\Programs\Python\Python310\Scripts,运行
pip3 install mitmproxy
安装成功(我记得会安装一大堆相关包,还可能会自动升级requests导致一些其他程序出问题)
安装完毕后,cmd,运行mitmdump --version查看是否安装成功。
二、使用mitmweb
管理员运行cmd,然后运行mitmweb -p 8889,在地址栏输入127.0.0.1:8081,即监听了8889端口[被监听的浏览器或者应用要将代理设置为127.0.0.1:8889](默认监听端口8080),即可以在web中查看流量。
在此我使用默认情况,在cmd中输入mitmweb,此时默认监控的是127.0.0.1:8080。
使用360极速浏览器测试,将其设置为使用127.0.0.1:8080的代理服务器。
在另外的chrome浏览器中输入127.0.0.1:8081,会打开一个网页,用于显示流经360浏览器(代理为127.0.0.1:8080)的数据包。
不过,每次打开https的页面,都会有如下提醒:
应该是https证书的问题,怎么解决https流量的问题呢?
安装完毕后,安装证书为解析https:
<1>首先管理员cmd,运行mitmdump,在windows中产生CA证书
<2>在用户/管理员/.mitmproxy文件夹内找到mitmporxy-ca.p12,注意路径管理员并不一定总是Administrator,比如我的就是LC。(而且我之前用过mitmproxy,所以这个.mitmproxy文件夹的时间是2020/9/7,会引起问题,下面再讲)
<3>双击它,当前用户,下一步,不输密码,包括所有扩展属性,下一步,将所有的证书都放入下列存储,受信任的根证书颁发机构,下一步,警告框,选是,导入成功。
出现问题:
在操作完上述步骤后,有可能一次成功,也可能仍然会弹出“不是私密连接”的提示,地址栏显示证书有问题,查看详情说是证书已经过期,这种情况大概率是之前安装过mitmproxy证书。
这时需要删除:用户/管理员/.mitmproxy文件夹,并重新执行上述步骤。看日期已经是最新的了。
如果还有问题,需要使用网页重新下载证书:使用挂上127.0.0.1:8080的浏览器(在已经开启mitmweb的默认端口的情况下),访问mitm.it网址,下载证书。
我忘了:是直接双击安装,还是先复制粘贴覆盖掉“用户/管理员/.mitmproxy”里的证书后安装。
经过上述操作后,就会弹出警告框,说明基本成功了。
此后,用mitm中间人抓取https流量时,就不会弹出“不是私密连接”的提示了。