如何配置 mitmproxy 来拦截 https?

如何配置 mitmproxy 来拦截 https?

我正在尝试使用它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)

问题:

  1. 我是否需要配置另一个端口来mitmproxy监听https
  2. 我如何告诉http(该工具)信任mitmproxy CA

答案1

Web GUI 非常方便。您可以改用它mitmproxy

  1. 运行代理服务器 $mitmweb --listen-port 44700
    确保防火墙中 44700 端口已打开。您可以使用--listen-host标志指定代理的 IP。如果无法远程访问, 请尝试 IE--listen-host 192.168.0.10或尝试。--listen-host 0.0.0.0

  2. 在远程设备中配置IP和端口代理。

  3. 在远程设备上打开浏览器并转到http://mitm.it,是本地 DNS 中的本地页面,您可以在其中下载并安装证书。
    如果是 Android,则必须指定 PIN 锁定屏幕。

  4. 打开 Web GUI,浏览器默认使用 8081 端口:http://127.0.0.1:8081/#/flows
    享受网络拦截。

答案2

配置设备代理到 ip/端口,然后打开http://mitm.it在浏览器上,选择一个操作系统来安装CA。

更多细节可以参考官方文档

相关内容