官方版

HTTPS Connections Timeout with Decryption Enabled

Problem: Client Application Cannot Reach HTTPS Site when Fiddler is configured to decrypt HTTPS traffic.

This issue occurs on Windows Vista or later.

Solution 1: Customize Fiddler Rules to force SSLv3 handshake

  1. Click Rules > Customize Rules.
  2. Add this code to the OnBeforeRequest method (where “HTTPSsite.com” is the hostname of the destination server):
    1. if (oSession.HTTPMethodIs("CONNECT") && oSession.HostnameIs("HTTPSSite.com"))
    2. {
    3. oSession["x-OverrideSslProtocols"] = "ssl3";
    4. FiddlerApplication.Log.LogString("Legacy compat applied for inbound request to HTTPSSite.com");
    5. }

    Solution 2: Modify .NET application to force SSLv3 handshake

    Use this code in your .NET application:
    1. ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

    See Also

    “How do you get a System.Web.HttpWebRequest object to use SSL 2.0?” at stackoverflow.com

谷歌翻译版

启用解密时HTTPS连接超时

问题: 将Fiddler配置为解密HTTPS流量时,客户端应用程序无法访问HTTPS站点.

在Windows Vista或更高版本上会发生此问题。

解决方案1: 自定义Fiddler规则以强制SSLv3握手

  1. 点击 Rules > Customize Rules.
  2. 将此代码添加到OnBeforeRequest方法(其中“ HTTPSsite.com”是目标服务器的主机名):
    1. if (oSession.HTTPMethodIs("CONNECT") && oSession.HostnameIs("HTTPSSite.com"))
    2. {
    3. oSession["x-OverrideSslProtocols"] = "ssl3";
    4. FiddlerApplication.Log.LogString("Legacy compat applied for inbound request to HTTPSSite.com");
    5. }

    解决方案2:修改.NET应用程序以强制进行SSLv3握手

    在你的.NET应用程序使用以下代码:
    1. ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

    查看更多

    如何获取System.WebHttpWebRequest对象以使用SSL2.0?在stackoverflow.com