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

本文关键字:TLS 安全 通道 SSL 创建 RestSharp | 更新日期: 2023-09-27 18:32:16

我正在尝试在全新安装的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 中不可用?

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

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

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

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

我终于找到了这篇Microsoft文章:

默认情况下,不再为 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