与支持最高支持TLS 1.2
多少服务器通信的默认安全协议是什么?将.NET
在默认情况下,选择支持在服务器端安全性最高的协议或做我必须明确地添加此行代码:
System.Net.ServicePointManager.SecurityProtocol =
SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
除了更改代码外,还有其他方法可以更改此默认设置吗?
最后,.NET 4.0
仅支持最多TLS 1.0
?即我必须将客户项目升级到4.5以支持TLS 1.2
。
我的动机是SSLv3
即使服务器支持它也要删除对客户端的支持(我已经有一个Powershell脚本在计算机注册表中禁用它),并支持服务器支持的最高TLS协议。
更新:
纵观ServicePointManager
类.NET 4.0
我看不出有什么枚举值TLS 1.0
和1.1
。两者.NET 4.0/4.5
的默认值为SecurityProtocolType.Tls|SecurityProtocolType.Ssl3
。希望此默认设置不会因禁用SSLv3
注册表而中断。
但是,我已经决定必须将所有应用程序升级到所有应用程序的所有引导代码,.NET 4.5
并明确添加SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
它们。
这将向各种api和服务发出出站请求,而不会降级到api,SSLv3
因此应选择的最高级别TLS
。
这种方法听起来合理还是过度?我有许多应用程序需要更新,我想对它们进行将来的验证,因为我听说TLS 1.0
某些提供商甚至可能会在不久的将来弃用这些应用程序。
作为客户端向API发出出站请求时,在注册表中禁用SSL3甚至会对.NET框架产生影响吗?我看到默认情况下未启用TLS 1.1和1.2,我们是否必须通过注册表启用它?RE http://support.microsoft.com/kb/245030。
经过一番调查,我认为注册表设置不会有任何影响,因为它们适用于IIS(服务器子项)和浏览器(客户端子项)。
抱歉,该帖子变成了多个问题,随后给出了“也许”答案。