5

我正在尝试在全新安装的 Windows 8.1 上使用 Visual Studio 2012 Express 中的 RestSharp。我尝试使用的 API 仅支持用于 SSL 的 RC4-SHA。证书有效。

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 并运行完全相同的代码后,问题就消失了。

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

4

2 回答 2

9

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

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12 | System.Net.SecurityProtocolType.Tls11 | System.Net.SecurityProtocolType.Tls11;
于 2018-08-24T17:22:58.683 回答
5

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

我终于找到了这篇微软文章

默认情况下不再为 TLS 启用 RC4。依赖 RC4 的应用程序(例如 Internet Explorer)可能无法连接

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

[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

于 2013-09-25T13:16:28.460 回答