12

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

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

...然而...

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

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

有关完整的 Fiddler 窗口,请参阅:

在此处输入图像描述

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

我的问题:这个异常是否具有误导性,实际上是其他一些错误阻止了安全通道的设置?...或者...我们还有机会监控这个 https 通信吗?

提前谢谢

4

3 回答 3

14

什么是客户端程序?

此错误通常表明客户端应用程序仅提供某些 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 选项卡上启用的协议列表。

于 2013-07-11T17:43:22.677 回答
0

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

奇怪的是,对于使用 SslProtocols.Tls 协议的 IE10,它并没有一直中断,所以如果失败,我将添加一些代码来切换协议

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

于 2014-02-02T20:48:05.327 回答
0

令人难以置信的是,这个问题在 6 年后仍然存在。刚刚安装了最新版本的 Fiddle (v5.0.20194.41348),果然在使用 Chrome 或 IE 的 Win7 上它一直失败并出现可怕的错误:

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

经过几个小时的测试,我找到了一个似乎适用于几乎所有网站的中间解决方案。目的是在日志中没有错误的情况下获得尽可能高的安全性。无需添加任何代码,只需在 Tools > Options > HTTPS > Protocols 下更改此行对我有用(只需复制并粘贴即可):

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

基本上删除了 ssl2 和 tls1.0 协议,这给我们留下了一些相当不错的安全性并且到目前为止没有错误。花了几个小时对这个错误感到沮丧,希望那里的人可能会发现这很有用,非常感谢 EricLaw,他发现了问题的根源。

于 2019-11-12T17:29:03.760 回答