我正在尝试使用当前最新版本使用Fiddler监控https流量:2.4.4.5
我已成功设置https,证书,我可以看到完整的https加密流量,例如浏览我银行的网站。
... ...然而
当我尝试监视其他服务器时,我在响应窗口中收到此错误消息:
“无法保护77.87.178.160的现有连接。对SSPI的调用失败,请参阅内部异常.InstallException:System.ComponentModel.Win32Exception:客户端和服务器无法通信,因为它们没有通用算法”
对于完整的Fiddler窗口,请参阅:
客户端不是这种情况下的浏览器,而是自定义客户端程序,它与自己的服务器进行通信。
我的问题:这个例外是否会产生误导,实际上其他一些错误会阻止安全通道的设置? ...要么... 我们还有机会监控这个https通信吗?
提前谢谢
答案 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发现了问题的根源。