Fiddler https错误:“因为他们没有共同的算法”

时间:2013-07-11 13:53:54

标签: ssl https fiddler

我正在尝试使用当前最新版本使用Fiddler监控https流量:2.4.4.5

我已成功设置https,证书,我可以看到完整的https加密流量,例如浏览我银行的网站。

... ...然而

当我尝试监视其他服务器时,我在响应窗口中收到此错误消息:

“无法保护77.87.178.160的现有连接。对SSPI的调用失败,请参阅内部异常.InstallException:System.ComponentModel.Win32Exception:客户端和服务器无法通信,因为它们没有通用算法”

对于完整的Fiddler窗口,请参阅:

enter image description here

客户端不是这种情况下的浏览器,而是自定义客户端程序,它与自己的服务器进行通信。

我的问题:这个例外是否会产生误导,实际上其他一些错误会阻止安全通道的设置? ...要么... 我们还有机会监控这个https通信吗?

提前谢谢

3 个答案:

答案 0 :(得分:13)

什么是客户端程序?

此错误通常表示该客户端应用程序仅提供某些HTTPS密码,并且Fiddler不支持这些密码。

但是,在这种情况下,这里的具体问题几乎可以肯定:http://blogs.msdn.com/b/ieinternals/archive/2009/12/08/aes-is-not-a-valid-cipher-for-sslv3.aspx

客户端正在尝试将AES与SSLv3一起使用,但这不是SSL3的有效密码之一。结果,连接失败。

可能可以通过点击规则>来解决此问题;自定义规则。向下滚动到Main()函数并在函数中添加以下行:

  CONFIG.oAcceptedServerHTTPSProtocols = 
    System.Security.Authentication.SslProtocols.Ssl3;

如果有效,请告诉我。

注意当前版本的Fiddler为此提供了一个UI链接:在HTTPS选项卡上查看已启用协议的命令。

答案 1 :(得分:0)

是的我在fiddler之外工作时也看到了这个错误,并且它与AuthenticateAsServer连接但只在使用IE10而不是Chrome作为浏览器时出错。

奇怪的是,它没有打破IE10使用SslProtocols.Tls协议的所有时间,所以如果一个失败,我将添加一些代码来切换协议

如果您使用像Fiddler这样的代理服务器或通过主机文件劫持DNS以将流量转移到服务器而使用不可见服务器,则可以使用的协议似乎也会改变

答案 2 :(得分:0)

令人难以置信的是,大约6年后这个问题仍然存在。 刚安装了最新版本的Fiddle(v5.0.20194.41348),并且在使用Chrome或IE的Win7上足够肯定,它始终会因可怕的错误而失败:

“ fiddler.network.https>与google.com的HTTPS握手失败(针对#1)。System.ComponentModel.Win32Exception客户端和服务器无法通信,因为它们不具有通用算法”

经过几个小时的测试,我发现了一个中间立场的解决方案,该解决方案似乎适用于几乎所有网站。目的是在日志中没有错误的情况下获得最高的安全性。无需添加任何代码,只需在“工具”>“选项”>“ HTTPS”>“协议”下更改此行即可(只需复制并粘贴):

<client>;ssl3;tls1.1;tls1.2

基本上删除了ssl2和tls1.0协议,这使我们拥有了相当不错的安全性,并且到目前为止没有错误。在花了数小时的时间对这个错误感到沮丧之后,希望那里的人会发现这个有用,并非常感谢EricLaw发现了问题的根源。