RestSharp:无法创建SSL / TLS安全通道

时间:2013-09-22 18:32:23

标签: c# ssl restsharp windows-8.1

我正在尝试在全新安装的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);

我不断收到客户的错误:The request was aborted: Could not create SSL/TLS secure channel。我认为有证书问题,直到我最终采取数据包捕获并发现没有共同的密码套件。 RC4-SHA在客户端不可用。安装Windows 7并运行完全相同的代码后,问题就消失了。

为什么在Windows 8.1上的RestSharp中RC4-SHA不可用?

2 个答案:

答案 0 :(得分:5)

在我确定Win 8.1之后,我有一个应用程序失败的tls握手。我的Wireshark捕获工作和非工作客户端登录显示缺少密码套件。在我连接的服务器上安装真实证书也解决了这个问题。服务器有自签名证书。

我终于找到了this Microsoft article

  

默认情况下,TLS不再启用RC4。应用程序(如   如果Internet Explorer依赖于RC4

,则可能无法连接      

您可以通过使用配置这些注册表项来启用RC4支持   以下REG命令:

     

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers]

     

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128]"Enabled"=dword:ffffffff

     

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128]"Enabled"=dword:ffffffff

     

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 56/128]"Enabled"=dword:ffffffff

答案 1 :(得分:3)

我总是在进行初始网络连接之前添加以下代码行来解决此问题。

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12 | System.Net.SecurityProtocolType.Tls11 | System.Net.SecurityProtocolType.Tls11;