Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssl 将Fiddler作为HTTPS服务器的反向代理运行_Ssl_Https_Proxy_Fiddler - Fatal编程技术网

Ssl 将Fiddler作为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) <===>

我有以下情况:2台主机,一台是客户端,另一台是HTTPS服务器

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的反向代理运行
  • 将现有HTTPS服务器移动到新端口(例如444)
  • 在“工具>小提琴手选项>连接”中,勾选“允许远程客户端连接”。重新启动小提琴手
  • 在Fiddler的QuickExec框中,键入
    !听443 ServerName
    ,其中ServerName是服务器的主机名;例如,对于
    https://Fuzzle/
    您可以使用
    fuzzle
    作为服务器名称
  • 在OnBeforeRequest方法中,添加:

    if ((oSession.HostnameIs("fuzzle")) &&
        (oSession.oRequest.pipeClient.LocalPort == 443) ) 
    {
       oSession.host = "fuzzle:444";
    }
    
  • 你为什么要这样做


    !listen
    命令指示Fiddler创建一个新端点,该端点将在连接时与客户端执行HTTPS握手;默认代理端点不会这样做,因为当代理接收到HTTPS流量的连接时,它会收到一个HTTP
    CONNECT
    请求,而不是握手。

    我刚刚遇到了一个类似的情况,我让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。在我的情况下,浏览器和服务器在同一台机器上!