本地服务启用
docker 快速启动, 以下是docker-compose.yml的内容
1version: '3.8'
2
3services:
4 mitmproxy:
5 image: clibing/alpine-mitmproxy
6 container_name: mitmproxy
7 ports:
8 - "19090:8080" # 代理的端口
9 - "19091:8081" # 代理的web管理, 默认监听0.0.0.0, 通过web可以进行请求的查看、数据的篡改
10 volumes:
11 - './ca:/workspace/home/.mitmproxy:rw' # 将生成的证书挂外保存,防止容器重启重新创建证书,关联的证书都需要同步更新,耗时浪费时间
证书的导入
浏览器(以firefox为例)
- Firefox –> 偏好设置 –> 网络设置 –> 选择
手动配置代理
1http代理: 0.0.0.0 端口为: 19090
其他默认即可
- 打开浏览器输入 http://mitm.it/选择对应的操作系统
macos导入
打开上述的pem文件
修改证书需要管理员密码
jdk导入
1sudo $JAVA_HOME/bin/keytool -import -trustcacerts \
2-alias mitmproxycert \
3-keystore $JAVA_HOME/jre/lib/security/cacerts \
4-file `pwd`/mitmproxy-ca-cert.pem
这是需要输入两次密码,第一个密码为sudo需要的密码,第二个密码为jdk的密码,默认为changeit
,然后会提示确认信息,输入是
上图因为sudo已经执行过了,sudo没有要求输入
移动端下载
- 配置代理服务ip,port
- 访问http://mitm.it
- 下载证书,安装pem。
java
- 关键代码
1 static {
2 // http proxy
3 System.setProperty("http.proxyHost", "127.0.0.1"); // PROXY_HOST:代理的IP地址
4 System.setProperty("http.proxyPort", "18080");
5 // https proxy
6 System.setProperty("https.proxyHost", "127.0.0.1"); // PROXY_HOST:代理的IP地址
7 System.setProperty("https.proxyPort", "19090");
8 }
java.net.url默认支持
httpclient、okhttp的配置稍后增加
数据的检查
打开浏览器输入: http://{第一步部署的服务ip}:19091 即可查看请求的详细信息、可以篡改数据
评论