C#HttpWebRequest验证/指定使用哪个密码

问题描述 投票:1回答:1

我正在开发一个需要连接到网站服务器的.NET 4.0应用程序。我一直在定期打开和关闭以下错误(模式似乎在午餐时间开始并在群集中发生)“基础连接已关闭。发送时发生意外错误。”我看到的与此错误相关的所有内容都指向了TLS错误。我使用SSLLabs来确定远程服务器正在使用TLS 1.1和TLS 1.2,但是没有几个密码可用。我怀疑应用程序创建的连接偶尔会尝试使用不受支持的密码,并且此错误正在被触发。

由于生产环境的敏感性和此错误时间的半随机性,我无法在服务器上运行wireshark或Fiddler测试以确定在故障期间使用的密码。不过,我已经使用TLS 1.2验证了应用程序IS。

有没有办法以编程方式从应用程序访问HttpWebRequest对象正在使用哪些密码,或者有没有办法从应用程序指定使用哪个密码?

c# .net https httpwebrequest tls1.2
1个回答
0
投票

几个月前我遇到了类似的问题,我记得在某个地方读过密码套件的协商是由操作系统完成的(在Windows的情况下是Schannel),我找不到从.NET内部控制它的方法。框架。

以下文章对我有所帮助,以便更好地理解围绕此的.NET框架行为(版本之间不同)。

Transport Layer Security (TLS) best practices with the .NET Framework

SCH_USE_STRONG_CRYPTO flag (which was relevant in my case)

Transport Layer Security (TLS) registry settings (This one is relevant on the Windows side to configure the available cipher suites)

编辑:

这篇文章(由Troy Starr [MSFT]提供)帮助我理解了我的问题:https://community.qualys.com/thread/16917-net-framework#comment-35829

© www.soinside.com 2019 - 2024. All rights reserved.