【问题标题】:Fiddler - Capture HTTPS Traffic from Web ApplicationFiddler - 从 Web 应用程序捕获 HTTPS 流量
【发布时间】:2016-08-22 17:33:12
【问题描述】:

我一直在努力让 Fiddler 解密我支持的其中一个网络应用程序的通信。

版本

提琴手:4.6.2.3

操作系统:Windows 2012 R2

.NET:4.6

设置

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

Fiddler 根证书:已安装(现在几次...)

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

我扫描了第一个引发错误的端点,但请记住,提琴手无法与任何 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 解密发挥得很好。

在这一点上,任何见解或帮助将不胜感激。

谢谢!

【问题讨论】:

  • 如果您不是 Fiddler 的新用户,SSL 配置可能已经过时。在 HTTPS 配置页面上执行 Actions -> Reset all Certificates。
  • 试了几次,遗憾的是没有变化。

标签: ssl encryption fiddler


【解决方案1】:

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

第 1 步:导出证书

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

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

第 3 步:添加以下虚拟机选项

应该是这样的。

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

【讨论】: