AnyProxy抓取http/https请求

字数 877阅读 2910

相关链接
AnyProxy github地址
HTTPS相关教程
基本参考这篇文章

AnyProxy是阿里巴巴基于 Node.js 开发的一款开源代理服务器。做为中间代理服务器,它可以收集所有经过它的http请求流量(包括https明文内容);它提供了友好的web界面,便于直观的查看经过它的http请求;同时它支持二次开发,可以用javascript控制整个代理的全部流程,便于前端调试和收集http请求页面内容。它可以用于移动app和移动web页面调试、 抓取。

1. 安装Node.js:

Node.js官网下载最新版或者稳定版Node.js的msi文件后,双击安装,直到安装完成即可。

2.安装AnyProxy:

安装好Node.js后,在windows的命令提示符中输入下面命令安装AnyProxy,耐心等待直到安装完成:

npm install -g anyproxy

安装过程如果遇到问题 长时间停留在fetchMetadata: sill xxx
解决方案更换成淘宝的源

npm config set registry https://registry.npm.taobao.org
– 配置后可通过下面方式来验证是否成功
npm config get registry
– 或npm info express

3.生成RootCA,打开,信任它

  • 生成RootCA
    • 命令行执行

anyproxy --root

  • 找到RootCA文件

    • 方法一: 执行完成之后,会打开证书的安装路径,即可看到 rootCA.crt 文件
    • 方法二: 启动anyproxy,浏览器打开http://localhost:8002/fetchCrtFile,也能获取rootCA.crt文件
    • 方法三:启动anyproxy,http://localhost:8002/qr_root可以获取证书路径的二维码,移动端安装时会比较便捷
  • 双击打开运行上述rootCA.crt文件

  • 根据操作系统提示,信任rootCA


    Windows.jpg

    Mac.jpg

4.启动AnyProxy代理监听服务:

通过anyproxy -i命令启动代理监听,其中-i参数启用https请求内容解析。

anyproxy -i

通过上面命令启动AnyProxy代理监听服务服务后,AnyProxy会打开两个端口:
8001端口:即代理服务端口, 本机的IP和8001用于设置代理,如:192.168.31.79:8001
8002端口:AnyProxy的web界面,通过浏览器打开http://192.168.31.79:8002的形式,即可查看所有经过AnyProxy代理的http请求。


启动AnyProxy代理监听服务.png

5.设置代理(手机端):

1、安装证书

我们需要在被代理的手机上安装证书,这样在AnyProxy上才能以明文的方式查看https请求内容。在手机上安装证书有两种方式:

  1. 直接在手机浏览器中打开http://ip:8002/fetchCrtFile(IP换成安装AnyProxy机器的IP)
  2. 在安装AnyProxy主机上打开http://localhost:8002/qr_root,然后扫描二维码,在浏览器中打开安装证书
2、设置代理:

在手机wifi设置中,手动设置http代理,在服务器中输入安装上面的代理IP,端口输入8001,保存即可。这样在此手机上所有的http请求(包括Web站点和收集app,如微信中的http请求),都会通过AnyProxy代理。在安装AnyProxy的电脑上,打开http://localhost:8002,即可看到所有被代理的http请求。带锁的即为https请求。

AnyProxy.png

推荐阅读更多精彩内容