运行 Fiddler 作为 HTTP 到 HTTPS 反向代理

Running Fiddler as HTTP to HTTPS reverse proxy

我的机器上有一项服务 运行。这个服务是在 HTTPS 上发布的,在 HTTP 上启动它似乎有点复杂。某个远程机器通过 HTTP 调用我的机器(这不在我的控制之下)。我想对我的服务执行一些非性能关键测试,看起来最简单的方法是使用有点像 HTTP 到 HTTPS 的反向代理。 Fiddler 非常适合 HTTP 到 HTTP 和 HTTPS 到 HTTPS 场景,但我无法让它适用于我的情况。因此我需要:

+----------------+          +--------------------------------+
| Remote machine | -------> | My machine                     |
|                |  HTTP    | Fiddler    -------> My machine |
|                |          |            HTTPS    service    |
+----------------+          +--------------------------------+

我可以使用 Fiddler 实现吗?

当然,Fiddler 可以将入站请求从 HTTP 转换为 HTTPS。

最简单的方法是在 OnBeforeRequest 中添加一些内容,例如:

if (oSession.HostnameIs("myhost") && 
    (oSession.oRequest.pipeClient.LocalPort == 80)) 
{
  oSession.fullUrl = "https://" + oSession.url;
}

当然,这假设 Fiddler 被配置为 运行 在端口 80 上,HTTP 的默认端口。你可以 运行 它在你喜欢的任何端口上(例如,如果端口 80 已经在使用中)但是你需要更改客户端请求的 URL 中的端口,如果你可以这样做,您可能可以将客户端更改为使用 HTTPS URL 开始。