【发布时间】:2014-11-08 06:54:56
【问题描述】:
我有以下情况:2台主机,一台是客户端,另一台是HTTPS服务器。
Client (:<brwsr-port>) <=============> Web server (:443)
我在服务器上安装了Fiddler,这样我现在就可以在我的服务器上的 8888 端口上运行 Fiddler。
我想达到的情况如下:
|Client (:<brwsr-port>)| <===> |Fiddler (:8888) <===> Web server (:443)|
|-Me-------------------| |-Server--------------------------------|
我想从我的计算机联系 Fiddler,它将流量重定向到 Web 服务器。然而,Web 服务器使用 HTTPS。
在服务器上,我设置了 Fiddler 来处理 HTTPS 会话并对其进行解密。我被要求在服务器上安装 Fiddler 的假 CA 证书,我做到了!我还插入了 Fiddler wiki 页面建议的脚本来重定向 HTTPS 流量
// HTTPS redirect -----------------------
FiddlerObject.log("Connect received...");
if (oSession.HTTPMethodIs("CONNECT") && (oSession.PathAndQuery == "<server-addr>:8888")) {
oSession.PathAndQuery = "<server-addr>:443";
}
// --------------------------------------
但是,当我尝试 https://myserver:8888/index.html 时,我失败了!
失败详情
在客户端使用 Fiddler 时,我可以看到 CONNECT 请求启动但会话失败,因为响应是 HTTP 错误 502。看起来没有人在侦听端口 8888。事实上,如果我在服务器上停止 Fiddler 我得到同样的情况:502 bad gateway。
请注意,当我尝试 https://myserver/index.html 和 https://myserver:443/index.html 时,一切正常!
问题
我做错了什么?
有没有可能……?
我认为由于 TLS/SSL 可能在端口 443 上工作,我应该让 Fiddler 在那里监听并将我的 Web 服务器移动到另一个端口,比如 444(我应该在 IIS 上设置一个 https 绑定到端口 444)。对吗?
【问题讨论】: