在Windows Server 2008 R2上使用IIS7.5使用TLS1.2发出请求

时间:2018-09-26 09:11:49

标签: c# windows-server-2008-r2 tls1.2

我有一个用C#制作的Web服务。它使用其他Web服务,但始终使用SSL3或TLS1.0。

我已通过以下链接更改了注册表:https://www.derekseaman.com/2010/06/enable-tls-12-aes-256-and-sha-256-in.html#uds-search-results

如果在注册表上,我禁用TLS1.0,则尝试使用SSL3发出请求;如果我禁用SSL3,则不发出请求。如果我仅将TLS1.2密码放在gpedit上,它不会发出请求。我认为TLS1.2仅在回答请求时起作用,而在消耗时不起作用。

这是IIS使用的套件密码:

TLS 1.0:

  

密码套件:TLS_RSA_WITH_AES_128_CBC_SHA(0x002f)密码套件:   TLS_RSA_WITH_AES_256_CBC_SHA(0x0035)密码套件:   TLS_RSA_WITH_RC4_128_SHA(0x0005)密码套件:   TLS_RSA_WITH_3DES_EDE_CBC_SHA(0x000a)密码套件:   TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA(0xc013)密码套件:   TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA(0xc014)密码套件:   TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA(0xc009)密码套件:   TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA(0xc00a)密码套件:   TLS_DHE_DSS_WITH_AES_128_CBC_SHA(0x0032)密码套件:   TLS_DHE_DSS_WITH_AES_256_CBC_SHA(0x0038)密码套件:   TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA(0x0013)密码套件:   TLS_RSA_WITH_RC4_128_MD5(0x0004)

SSL3:

  

密码套件:TLS_RSA_WITH_RC4_128_SHA(0x0005)密码套件:   TLS_RSA_WITH_3DES_EDE_CBC_SHA(0x000a)密码套件:   TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA(0x0013)密码套件:   TLS_RSA_WITH_RC4_128_MD5(0x0004)密码套件:   TLS_EMPTY_RENEGOTIATION_INFO_SCSV(0x00ff)

如果我使用独立的c#应用程序,它将使用TLS1.2,但是当它由IIS管理时,则不会这样做。

我使用在.NET4.0上运行的.NET 3.5(在项目的属性上,我在Web.config上具有.NET 3.5,我具有)。这是因为我需要使用WSE3。 .Net的运行时为v4.0.30319

1 个答案:

答案 0 :(得分:0)

要在旧版.NET上支持TLS 1.1 / 1.2作为客户端,您需要在ServicePointManager上启用这些协议。

但是通常用于此目的的枚举没有必填字段,但是如果完全修补了安装,则基础值确实起作用。使用VB.Net(因为我要处理的是它的代码):

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls _
                    Or DirectCast(&H300, SecurityProtocolType) _
                    Or DirectCast(&HC00, SecurityProtocolType)