1

我正在使用小代理https://github.com/adamfisk/LittleProxy创建一个测试代理,它为给定的 url 返回一些预定义的 html 内容。相同的代码:

 HttpProxyServer server =
DefaultHttpProxyServer.bootstrap()
    .withPort(8080)
    .withFiltersSource(new HttpFiltersSourceAdapter() {
        public HttpFilters filterRequest(HttpRequest originalRequest, ChannelHandlerContext ctx) {
            return new HttpFiltersAdapter(originalRequest) {
                @Override
                public HttpResponse clientToProxyRequest(HttpObject httpObject) {
                   // My custom implementataion to return the locally stored content based in input url
                   String content = getContent(request.getUri())
                   final ByteBuf buffer = Unpooled.copiedBuffer(content, CharsetUtil.UTF_8);
                   HttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, status, buffer);
                   HttpHeaders.setKeepAlive(response, false);
                   HttpHeaders.setHeader(response, "Referrer-Policy", "no-referrer");
                   return response;
                }

                @Override
                public HttpObject serverToProxyResponse(HttpObject httpObject) {
                    return httpObject;
                }
            };
        }
    })
    .start();

我正在使用以下代码调用 url 的代理:

public HttpResponse performHttpGet(String url, String proxyHost, int port) throws Exception {
    CloseableHttpClient http =   HttpClients.custom().setProxy(new HttpHost(proxyHost, port)).build();
    HttpGet get = new HttpGet(url);
    return http.execute(get);

}

对于 http url,http get 调用工作正常,但对于 https url,调用失败,因为它对 https url 发出 CONNECT 请求。有没有办法在小代理中为https url 返回相同的响应?

在我想为 https url 发送一些预定义内容而不是实际调用 Web 服务器的用例中,我如何使用 MITM。

4

0 回答 0