与支持最多的服务器通信的默认安全协议是什么TLS 1.2?将.NET在默认情况下,选择支持在服务器端安全性最高的协议或做我必须明确地添加此行代码:
System.Net.ServicePointManager.SecurityProtocol =
SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
Run Code Online (Sandbox Code Playgroud)
除了代码更改之外,有没有办法更改此默认值?
最后,.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;到所有应用程序的所有引导代码中.
这将使各种apis和服务的出站请求不降级,SSLv3并应选择最高级别TLS.
这种方法听起来合理还是矫枉过正?我有很多应用程序要更新,我希望将来证明它们,因为我听说甚至TLS 1.0可能在不久的将来被某些提供商弃用.
作为向API发出出站请求的客户端,在注册表中禁用SSL3是否会在.NET框架中产生影响?我默认看到,TLS 1.1和1.2没有启用,我们是否必须通过注册表启用它?RE http://support.microsoft.com/kb/245030.
经过一些调查后,我相信注册表设置将不会有任何影响,因为它们适用于IIS(服务器子项)和浏览器(客户端子项).
对不起,这篇文章变成了多个问题,接着是"可能"的答案.
当我执行以下代码时
System.Net.ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => {
return true;
};
var webClient = new WebClient();
var s = webClient.DownloadString("https://jtlplugins.x-volution.de/api.php?apikey=yS5VS7OiG1ukiIqLzCSYuFCjeF1qSskKOQeCtVxh&do=pruefe_app&cappid=123&chardwareid=DC0D-BFEA-6F79-58DE-21E9-BA3A-B288-C46F&clizenzschluessel=123");
Run Code Online (Sandbox Code Playgroud)
我总是得到一个System.Net.WebException:无法创建SSL/TLS安全通道
当我执行这个
https://jtlplugins.x-volution.de/api.php?apikey=yS5VS7OiG1ukiIqLzCSYuFCjeF1qSskKOQeCtVxh&do=pruefe_app&cappid=123&chardwareid=DC0D-BFEA-6F79-58DE-21E9-BA3A-B288-C46F&clizenzschluessel=123
Run Code Online (Sandbox Code Playgroud)
例如,直接在Firefox或Internet Explorer中,它可以工作并返回结果.
我应该怎么做,这也是我的代码在浏览器中执行的?
我已经阅读了stackoverflow中有关此问题的其他帖子 - 但他们没有解决我的问题:-(
我正在尝试将以下代码行添加到网站项目中的Global.asax文件中.
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
Run Code Online (Sandbox Code Playgroud)
vs2012 IntelliSense显示存在Tls12定义.但构建是说定义不存在(参见屏幕截图).
我已经尝试将System.Net.dll添加到项目的bin文件夹中,但构建仍然失败.知道我怎么能解决这个问题?
我正在尝试在全新安装的Windows 8.1中使用Visual Studio 2012 Express中的RestSharp.我试图使用的API仅支持RC4-SHA用于SSL.证书有效.
var client = new RestClient();
client.BaseUrl = "https://teststore.mybigcommerce.com/api/v2/";
client.Authenticator = new HttpBasicAuthenticator("username", "key");
var request = new RestRequest();
request.Resource = "time.json";
IRestResponse response = client.Execute(bcrequest);
Run Code Online (Sandbox Code Playgroud)
我不断收到客户的错误:The request was aborted: Could not create SSL/TLS secure channel.我认为存在证书问题,直到我最终采取数据包捕获并发现没有共同的密码套件.RC4-SHA在客户端不可用.安装Windows 7并运行完全相同的代码后,问题就消失了.