对于Windows Server 2008,WebRequest对TLS 1.1 / 1.2进行了故障转移

时间:2015-05-27 10:34:01

标签: .net ssl

我正在运行一个.net 4.5应用程序,该应用程序向仅支持TLS 1.1和TLS 1.2的外部服务器发出安全出站请求。当我从Windows 8 / 8.1主机运行应用程序时,一切正常,但在Windows Server 2008上是失败了: “基础连接已关闭:发送时发生意外错误。”

我认为.net依赖于底层操作系统基础架构,并且由于Windows Server 2008不支持TLS 1.1和TLS 1.2,因此WebRequest也会失败。有人可以证实吗?有什么文件可以指向我吗?

代码示例:

var request = WebRequest.Create("https://SOMEURL");
using (var response = (HttpWebResponse) request.GetResponse())
{
    using (var responseStream = response.GetResponseStream())
    {
         // read the stream
    }
}

我也在设置支持的协议:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

2 个答案:

答案 0 :(得分:1)

  

因为Windows Server 2008不支持TLS 1.1和TLS 1.2,所以WebRequest也会失败。

是的,就是这种情况。

  

指向我的任何文件?

来自https://support.microsoft.com/en-us/kb/245030

Windows Server 2008 supports the following protocols:
 SSL 2.0
 SSL 3.0
 TLS 1.0

Windows Server 2008 R2 and Windows 7 support the following protocols:
 SSL 2.0
 SSL 3.0
 TLS 1.0
 TLS 1.1
 TLS 1.2

答案 1 :(得分:0)

我找到了你的间接证明。

SecurityProtocolType Enumeration

  

指定Schannel安全包支持的安全协议。

Support for SSL/TLS protocols on Windows

  

现在让我们来看看,在Windows上,对SSL / TLS协议的支持与SCHANNEL组件相关联。因此,如果特定操作系统版本不支持SSL / TLS版本,则表示它仍然不受支持。

Secure channel compatibility support with SSL and TLS