小编典典

请求被中止:无法创建 SSL/TLS 安全通道

all

WebRequest由于以下错误消息,我们无法使用 HTTPS 服务器连接:

The request was aborted: Could not create SSL/TLS secure channel.

我们知道服务器没有使用路径的有效 HTTPS 证书,但为了绕过这个问题,我们使用从另一个 StackOverflow 帖子中获取的以下代码:

private void Somewhere() {
    ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(AlwaysGoodCertificate);
}

private static bool AlwaysGoodCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors policyErrors) {
   return true;
}

问题是服务器从不验证证书并因上述错误而失败。有谁知道我应该做什么?


我应该提一下,几周前我和一位同事进行了测试,它与我上面写的类似的东西运行良好。我们发现的唯一“主要区别”是我使用的是 Windows 7,而他使用的是
Windows XP。这会改变什么吗?


阅读 204

收藏
2022-03-06

共1个答案

小编典典

我终于找到了答案(我没有注意到我的来源,但它来自搜索);

虽然代码在 Windows XP 中有效,但在 Windows 7 中,您必须在开头添加以下代码:

// using System.Net;
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
// Use SecurityProtocolType.Ssl3 if needed for compatibility reasons

现在,它完美运行。


附录

正如 Robin French 所说;如果您在配置 PayPal 时遇到此问题,请注意,从 2018 年 12 月 3 日开始,他们将不支持
SSL3。您需要使用 TLS。这是关于它的Paypal页面。

2022-03-06