сделать запрос с TLS1.2 с использованием IIS7.5 на Windows Server 2008 R2 - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть веб-сервис на C #.Он использует другой веб-сервис, но всегда использует 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:

1014 * Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA (0x002F) Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA (0x0035) Cipher Suite: TLS_RSA_WITH_RC4_128_SHA (0x0005) Cipher Suite: TLS_RSA_WITH_3DES_EDE_CBC_SHA (0x000A) Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013) Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014) Cipher Люкс: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009) Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a) шифра: TLS_DHE_DSS_WITH_AES_128_CBC_SHA (0x0032) Cipher Suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA (0x0038) шифра: TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA (0x0013) Cipher Suite: TLS_RSA_WITH_RC4_128_MD5 (0x0004)

SSL3:

Набор шифров: TLS_RSA_WITH_RC4_128_SHA (0x0005) Набор шифров: TLS_RSA_WITH_3DES_EDE_CBC_SHA (0x000a) Шифр ​​SUITE: TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA (0x0013) Cipher Suite: TLS_RSA_WITH_RC4_128_MD5 (0x0004) Cipher Suite: TLS_EMPTY_RENEGOTIATION_INFO_SCSV (0x00FF)

Если я использую самостоятельный C # приложение, оно использует TLS1.2, но когда она находится под управлениемIIS, не делает этого.

Я использую .NET 3.5, работающий на .NET4.0 (на свойствах проекта у меня есть .NET 3.5, на web.config, у меня есть).Это потому, что мне нужно использовать WSE3.Время выполнения .Net v4.0.30319

1 Ответ

0 голосов
/ 26 сентября 2018

Для поддержки TLS 1.1 / 1.2 в качестве клиента в более старых версиях .NET вам необходимо включить эти протоколы на ServicePointManager.

Но перечисление, обычно используемое для этого, не имеет необходимых полей,но базовые значения работают, если установка полностью исправлена.Используя VB.Net (так как это код, который я должен передать):

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