Fiddler - 从Web应用程序捕获HTTPS流量

时间:2016-08-22 17:33:13

标签: ssl encryption fiddler

我一直在墙上撞了一会儿,现在试图让Fiddler解密我支持的其中一个网络应用程序的通信。

版本

Fiddler:4.6.2.3

操作系统:Windows 2012 R2

.NET:4.6

设置

解密HTTPS流量:已启用(...来自所有进程)

Fiddler Root Certificate:已安装(现在几次......)

Protocols: <client>;ssl3;tls1.0;tls1.1;tls1.2

在web.config中我添加了:

<system.net>
  <defaultProxy enabled="true">
  <proxy proxyaddress="http://127.0.0.1:8888" bypassonlocal="False"/>
  </defaultProxy>
</system.net>

我在Fiddler日志中遇到的错误是:

The client and server cannot communicate, because they do not possess a common algorithm for pipe

我扫描了第一个抛出错误的端点,但请记住,fiddler无法与任何https端点建立握手:

TLS 1      offered
TLS 1.1    offered
TLS 1.2    offered

经过一番研究后,我尝试将其添加到FiddlerScript中:

if (oSession.HTTPMethodIs("CONNECT") && oSession.HostnameIs("dev-wsv-OMITTED.OMITTED.ad"))
    { 
        oSession["x-OverrideSslProtocols"] = "tls1.0";
    }

没有成功。我不知所措。为什么服务器可以建立握手而Fiddler不能?所有非加密流量都是在没有问题的情况下捕获的,但我似乎无法让HTTPS解密发挥得很好。

此时,我们将非常感谢任何见解或帮助。

谢谢!

1 个答案:

答案 0 :(得分:0)

之前我遇到过类似的问题。您似乎还没有使用Fiddler根证书创建密钥库。

第1步:导出证书 enter image description here

步骤2:使用此证书创建密钥库

keytool.exe -import -file C:\Users\<username>\Desktop\FiddlerRoot.cer -keystore FiddlerKeystore -alias Fiddler

步骤3:添加以下VM选项

enter image description here

应该是它。

您可以参考this msdn blog了解详情。