Ssl 将Fiddler作为HTTPS服务器的反向代理运行
我有以下情况:2台主机,一台是客户端,另一台是HTTPS服务器Ssl 将Fiddler作为HTTPS服务器的反向代理运行,ssl,https,proxy,fiddler,Ssl,Https,Proxy,Fiddler,我有以下情况:2台主机,一台是客户端,另一台是HTTPS服务器 Client (:<brwsr-port>) <=============> Web server (:443) 客户端(:)Web服务器(:443) 我在服务器上安装了Fiddler,这样我现在就可以在8888端口的服务器上运行Fiddler了 我想谈的情况如下: |Client (:<brwsr-port>)| <===> |Fiddler (:8888) <===>
Client (:<brwsr-port>) <=============> Web server (:443)
客户端(:)Web服务器(:443)
我在服务器上安装了Fiddler,这样我现在就可以在8888端口的服务器上运行Fiddler了
我想谈的情况如下:
|Client (:<brwsr-port>)| <===> |Fiddler (:8888) <===> Web server (:443)|
|-Me-------------------| |-Server--------------------------------|
|客户端(:)|小提琴手(:8888)Web服务器(:443)|
|-Me------------------------------服务器--------------------------------|
我想从我的电脑联系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重定向-----------------
FiddlerObject.log(“连接已接收…”);
if(oSession.HTTPMethodIs(“连接”)&&(oSession.PathAndQuery==”:8888“){
oSession.PathAndQuery=“:443”;
}
// --------------------------------------
但是当我尝试https://myserver:8888/index.html
我失败了
故障详情
在客户端上使用Fiddler时,我可以看到连接请求启动,但会话失败,因为响应为HTTP错误502。看起来没有人在8888端口监听。事实上,如果我在服务器上停止Fiddler,我会遇到相同的情况:502坏网关
请注意,当我尝试https://myserver/index.html
和https://myserver:443/index.html
一切正常
问题:
我做错了什么
有没有可能。。。?
我想,既然TLS/SSL可能在端口443上工作,我应该让Fiddler在那里监听,并将我的web服务器移动到另一个端口,比如444(我可能应该在IIS上设置端口444上的https绑定)。是否正确?如果Fiddler没有配置为客户端代理,而是在服务器上作为反向代理运行,那么事情会变得更复杂 将Fiddler作为HTTPS的反向代理运行
!听443 ServerName
,其中ServerName是服务器的主机名;例如,对于https://Fuzzle/
您可以使用fuzzle
作为服务器名称if ((oSession.HostnameIs("fuzzle")) &&
(oSession.oRequest.pipeClient.LocalPort == 443) )
{
oSession.host = "fuzzle:444";
}
!listen
命令指示Fiddler创建一个新端点,该端点将在连接时与客户端执行HTTPS握手;默认代理端点不会这样做,因为当代理接收到HTTPS流量的连接时,它会收到一个HTTPCONNECT
请求,而不是握手。我刚刚遇到了一个类似的情况,我让VS2013(IISExpress)在HTTPS(端口44300)上运行web应用程序我想从移动设备上浏览应用程序
我将Fiddler配置为“充当反向代理”和“允许远程客户端连接”,但它只能在端口80(HTTP)上工作
根据EricLaw的建议,我将侦听端口从8888更改为8889,并运行命令“!listen 8889[host\u machine\u name]
”,宾果游戏中,我可以在端口8889上的HTTPS上浏览我的应用程序
注意:我之前在注册表()中输入了转发端口号,因此Fiddler已经知道将请求转发到哪个端口。BTW,如何使用现有证书启动HTTPS侦听器(不是由Fiddler\u DO\u not\u TRUST颁发的)?我试图通过
netsh http add sslcert
绑定证书,但这并不影响此操作。感谢您提供的信息和答案改进。关于问题,你读了吗?有可能吗?对我来说很有效,唯一一个小的调整-主机小写。@EricLaw我已经用oSession.host=“mywebapi.dev:444”添加了onbeforeRequest代码>但是当我输入时!侦听443 mywebapi.dev
I获取端口443正在由系统使用:4。您是否希望Fiddler使用随机端口
在#443
上启动安全侦听器,并使用证书SubjectCN=mywebapi.dev
。如果单击“是”,它将不起作用。我正在使用Fiddler 4.6.2.3。在我的情况下,浏览器和服务器在同一台机器上!