C# HttpWebRequest verify/specify 使用了哪个密码
C# HttpWebRequest verify/specify which cipher used
我正在开发一个需要连接到网站服务器的 .NET 4.0 应用程序。我一直在定期出现和关闭以下错误(模式似乎是在午餐前后开始并在集群中发生)"The underlying connection was closed. An unexpected error occurred on a send."
我所看到的与此错误相关的所有内容都指向 TLS 错误。
我使用 SSLLabs 确定远程服务器使用的是 TLS 1.1 和 TLS 1.2,但只有少数可用密码。
我怀疑应用程序创建的连接偶尔会尝试使用不受支持的密码,并且会出现此错误。
由于生产环境的敏感性和此错误时间的半随机性,我无法 运行 服务器上的 wireshark 或 Fiddler 测试以确定正在使用的密码在故障期间使用。不过,我已验证该应用程序使用的是 TLS 1.2。
是否可以通过编程方式从应用程序访问 HttpWebRequest 对象正在使用哪些密码,或者是否可以指定来自应用程序 使用哪个密码?
几个月前我遇到了类似的问题,我记得在某处读到密码套件的协商是由 OS(在 Windows 的情况下是 Schannel)完成的,我不能找不到在 .NET 框架内控制它的方法。
为了更好地理解 .NET Framework 的相关行为(版本之间有所不同),以下文章对我很有帮助。
Transport Layer Security (TLS) best practices with the .NET Framework
SCH_USE_STRONG_CRYPTO flag (which was relevant in my case)
编辑:
这篇文章(Troy Starr [MSFT])帮助我理解了我的问题:
https://community.qualys.com/thread/16917-net-framework#comment-35829
我正在开发一个需要连接到网站服务器的 .NET 4.0 应用程序。我一直在定期出现和关闭以下错误(模式似乎是在午餐前后开始并在集群中发生)"The underlying connection was closed. An unexpected error occurred on a send." 我所看到的与此错误相关的所有内容都指向 TLS 错误。 我使用 SSLLabs 确定远程服务器使用的是 TLS 1.1 和 TLS 1.2,但只有少数可用密码。 我怀疑应用程序创建的连接偶尔会尝试使用不受支持的密码,并且会出现此错误。
由于生产环境的敏感性和此错误时间的半随机性,我无法 运行 服务器上的 wireshark 或 Fiddler 测试以确定正在使用的密码在故障期间使用。不过,我已验证该应用程序使用的是 TLS 1.2。
是否可以通过编程方式从应用程序访问 HttpWebRequest 对象正在使用哪些密码,或者是否可以指定来自应用程序 使用哪个密码?
几个月前我遇到了类似的问题,我记得在某处读到密码套件的协商是由 OS(在 Windows 的情况下是 Schannel)完成的,我不能找不到在 .NET 框架内控制它的方法。
为了更好地理解 .NET Framework 的相关行为(版本之间有所不同),以下文章对我很有帮助。
Transport Layer Security (TLS) best practices with the .NET Framework
SCH_USE_STRONG_CRYPTO flag (which was relevant in my case)
编辑:
这篇文章(Troy Starr [MSFT])帮助我理解了我的问题: https://community.qualys.com/thread/16917-net-framework#comment-35829