如何使用 mitmproxy 调试 boost::beast

mitmproxy 是调试使用 boost::beast 发出的 HTTPS 请求的宝贵工具。

要使用它,记住 mitmproxy 监听 localhost8080 端口,并根据 HTTP Host 头转发请求。

首先,你需要禁用 SSL 证书验证:

ssl_disable.cpp
beast::ssl_stream<beast::tcp_stream> stream(ioc, ctx);
stream.set_verify_mode(ssl::verify_none);

现在,不是连接到基于 DNS 结果的 IP 地址如

resolver_connect.cpp
ip::tcp::resolver resolver(ioc);
get_lowest_layer(stream).connect(resolver.resolve({endpoint, "https"}));

而是直接连接到 127.0.0.1:8080 端点:

connect_via_mitmproxy.cpp
boost::asio::ip::tcp::endpoint ep(
    boost::asio::ip::address::from_string("127.0.0.1"),
    8080
);
get_lowest_layer(stream).connect(ep);

除此之外,你可以像往常一样做任何事情。


Check out similar posts by category: Boost, C/C++