我一直在墙上撞了一会儿,现在试图让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解密发挥得很好。
此时,我们将非常感谢任何见解或帮助。
谢谢!
答案 0 :(得分:0)
之前我遇到过类似的问题。您似乎还没有使用Fiddler根证书创建密钥库。
步骤2:使用此证书创建密钥库
keytool.exe -import -file C:\Users\<username>\Desktop\FiddlerRoot.cer -keystore FiddlerKeystore -alias Fiddler
步骤3:添加以下VM选项
应该是它。
您可以参考this msdn blog了解详情。