如何使用 mitmproxy 将 HTTPS 流量重定向到本地 HTTP 服务器?
How to redirect HTTPS traffic to local HTTP server using mitmproxy?
我正在尝试设置 mitmproxy,以便我可以从我的浏览器向 https://{my-domain}
发出请求,并让它 return 来自我的本地服务器 运行 的响应 http://localhost:3000 而不是,但我无法获得到达本地服务器的 https 请求。我看到来自 mitmproxy 的调试语句。另外,我可以让它为 http 流量工作,但不能为 https 工作。
我读了 mitmproxy addon docs and api docs
我已经安装了证书,我可以通过代理监控https。
我正在使用 Mitmproxy:4.0.4 和 Python:3.7.4
这是我的插件 (local-redirect.py) 以及我如何 运行 mitmproxy:
from mitmproxy import ctx
import mitmproxy.http
class LocalRedirect:
def __init__(self):
print('Loaded redirect addon')
def request(self, flow: mitmproxy.http.HTTPFlow):
if 'my-actual-domain-here' in flow.request.pretty_host:
ctx.log.info("pretty host is: %s" % flow.request.pretty_host)
flow.request.host = "localhost"
flow.request.port = 3000
flow.request.scheme = 'http'
addons = [
LocalRedirect()
]
$ mitmdump -s local-redirect.py | grep pretty
当我从我的服务器访问 url 表单时,我看到了日志记录语句,但是我的浏览器在请求时挂起并且没有向我的本地服务器发出请求。
上面的插件很好,但是我的本地服务器不支持 HTTP2。
使用 --no-http2
选项是一个快速修复:
mitmproxy -s local-redirect.py --no-http2 --view-filter localhost
或
mitmdump -s local-redirect.py --no-http2 localhost
我正在尝试设置 mitmproxy,以便我可以从我的浏览器向 https://{my-domain}
发出请求,并让它 return 来自我的本地服务器 运行 的响应 http://localhost:3000 而不是,但我无法获得到达本地服务器的 https 请求。我看到来自 mitmproxy 的调试语句。另外,我可以让它为 http 流量工作,但不能为 https 工作。
我读了 mitmproxy addon docs and api docs 我已经安装了证书,我可以通过代理监控https。
我正在使用 Mitmproxy:4.0.4 和 Python:3.7.4
这是我的插件 (local-redirect.py) 以及我如何 运行 mitmproxy:
from mitmproxy import ctx
import mitmproxy.http
class LocalRedirect:
def __init__(self):
print('Loaded redirect addon')
def request(self, flow: mitmproxy.http.HTTPFlow):
if 'my-actual-domain-here' in flow.request.pretty_host:
ctx.log.info("pretty host is: %s" % flow.request.pretty_host)
flow.request.host = "localhost"
flow.request.port = 3000
flow.request.scheme = 'http'
addons = [
LocalRedirect()
]
$ mitmdump -s local-redirect.py | grep pretty
当我从我的服务器访问 url 表单时,我看到了日志记录语句,但是我的浏览器在请求时挂起并且没有向我的本地服务器发出请求。
上面的插件很好,但是我的本地服务器不支持 HTTP2。
使用 --no-http2
选项是一个快速修复:
mitmproxy -s local-redirect.py --no-http2 --view-filter localhost
或
mitmdump -s local-redirect.py --no-http2 localhost