我正在尝试使用它mitmproxy
来调试一些https
请求。我已配置mitmproxy
为监听某个端口:
mitmproxy --listen-port 44700
我已经正确配置了我的环境:
export http_proxy=http://localhost:44700
export https_proxy=https://localhost:44700
这对以下情况有效http
:
» http http://www.example.org
正如预期的那样,击中了mitmproxy
。
但https
失败了:
» http https://www.example.org
Traceback (most recent call last):
File "/usr/bin/http", line 9, in <module>
load_entry_point('httpie==0.9.2', 'console_scripts', 'http')()
File "/usr/lib/python2.7/dist-packages/httpie/core.py", line 186, in main
error('%s: %s', type(e).__name__, str(e))
TypeError: __str__ returned non-string (type Error)
问题:
- 我是否需要配置另一个端口来
mitmproxy
监听https
? - 我如何告诉
http
(该工具)信任mitmproxy
CA
?
答案1
Web GUI 非常方便。您可以改用它mitmproxy
。
运行代理服务器 $
mitmweb --listen-port 44700
确保防火墙中 44700 端口已打开。您可以使用--listen-host
标志指定代理的 IP。如果无法远程访问, 请尝试 IE--listen-host 192.168.0.10
或尝试。--listen-host 0.0.0.0
在远程设备中配置IP和端口代理。
在远程设备上打开浏览器并转到http://mitm.it,是本地 DNS 中的本地页面,您可以在其中下载并安装证书。
如果是 Android,则必须指定 PIN 锁定屏幕。打开 Web GUI,浏览器默认使用 8081 端口:
http://127.0.0.1:8081/#/flows
享受网络拦截。
答案2
配置设备代理到 ip/端口,然后打开http://mitm.it在浏览器上,选择一个操作系统来安装CA。
更多细节可以参考官方文档