Проблема:
У меня есть сгенерированный клиент WCF, который использует сторонний WebService. Этот клиент является частью контроллера WeAPI, размещенного в IIS 7.5. Для сторонних служб требуется TLS 1.2 для соединений.
Когда клиент WCF пытается подключиться к стороннему WebService, я вижу в Fiddler, что рукопожатие терпит неудачу и что клиентский запрос указывает, что он использует TLS 1.0 вместо 1.2 (см. Вывод Fiddler ниже).
Я уже пробовал KB245030 и активировал TLS 1.2 для SChannel как клиента, так и сервера, но безрезультатно (также используя инструмент NARTAC)
http://support2.microsoft.com/kb/245030
Если я использую Fiddler и изменяю скрипт Fiddler, чтобы всегда использовать TLS 1.2, сервисный вызов работает нормально.
Вопрос:
Можно ли настроить систему так, чтобы клиентский вызов WCF использовал TLS 1.2 при размещении в IIS 7.5?
Захват Fiddler:
A SSLv3-compatible ClientHello handshake was found. Fiddler extracted the parameters below.
Version: 3.1 (TLS/1.0)<br/>
Random: ...<br/>
SessionID: empty
Extensions:<br/>
renegotiation_info 00<br/>
server_name ...<br/>
elliptic_curves secp256r1 [0x17], secp384r1 [0x18]<br/>
ec_point_formats uncompressed [0x0]
Ciphers:<br/>
[002F] TLS_RSA_AES_128_SHA<br/>
[0035] TLS_RSA_AES_256_SHA<br/>
[0005] SSL_RSA_WITH_RC4_128_SHA<br/>
[000A] SSL_RSA_WITH_3DES_EDE_SHA<br/>
[C013] TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA<br/>
[C014] TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA<br/>
[C009] TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA<br/>
[C00A] TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA<br/>
[0032] TLS_DHE_DSS_WITH_AES_128_SHA<br/>
[0038] TLS_DHE_DSS_WITH_AES_256_SHA<br/>
[0013] SSL_DHE_DSS_WITH_3DES_EDE_SHA<br/>
[0004] SSL_RSA_WITH_RC4_128_MD5<br/>
Compression:<br/>
[00] NO_COMPRESSION<br/>
Я получил ответ на этот вопрос из поддержки Microsoft, есть Windows Update für.Net, который исправляет эту проблему:
http://support.microsoft.com/kb/2960358