与最多支持TLS 1.2
台的服务器通信的默认安全协议是什么?在默认情况下,.NET
将 Select 服务器端支持的最高安全性协议,或者我是否必须显式添加以下代码行:
System.Net.ServicePointManager.SecurityProtocol =
SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
除了代码更改之外,还有什么方法可以更改这个默认值吗?
最后,.NET 4.0
只支持TLS 1.0
只吗?i、 e.我必须将客户项目升级到4.5以支持TLS 1.2
.
我的动机是取消客户端对SSLv3
的支持,即使服务器支持它(我已经在机器注册表中有一个Powershell脚本来禁用它),并支持服务器支持的最高TLS协议.
Update:
查看.NET 4.0
中的ServicePointManager
类,我没有看到TLS 1.0
和1.1
的枚举值.在这两个.NET 4.0/4.5
中,默认值均为SecurityProtocolType.Tls|SecurityProtocolType.Ssl3
.希望这个默认设置不会因为在注册表中禁用SSLv3
而被 destruct .
然而,我决定我必须将所有应用程序升级到.NET 4.5
,并在所有应用程序的所有 bootstrap 代码中明确添加SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
.
这将使对各种API和服务的出站请求不会降级到SSLv3
,并应 Select TLS
的最高级别.
这种做法听起来是合理还是矫枉过正呢?我有很多应用程序要更新,我想要证明它们的future ,因为我听说甚至TLS 1.0
个可能会在不久的将来被一些供应商弃用.
作为一个向API发出出站请求的客户端,在注册表中禁用SSL3是否会对客户端产生影响.NET框架?我知道默认情况下,TLS 1.1和1.2没有启用,我们必须通过注册表启用它吗?你http://support.microsoft.com/kb/245030岁.
经过一些调查,我相信注册表设置不会有任何影响,因为它们适用于IIS(服务器子项)和浏览器(客户端子项).
很抱歉,这篇帖子变成了多个问题,后面跟着"可能"的答案.