Сбой рукопожатия SSL/TLS
конфигурация
- Сервер Windows 2008R2 RDS
RDS01
- Сервер Windows 2008R2 RDS
RDS02
- Сервер Windows 2012R2 RemoteApp
APP01
проблема
URL вызова https://APP01.domain.local/rdweb
:
- От
RDS01
: Ошибка канала 40 (handshake_failure)
- От
RDS02
: Код ответа 200, цепочка сертификатов в норме
диагностики
Использование ssldiagnos.exe из RDS01
(устранена ошибка рукопожатия):
-= SUMMARY =-
Weak: 0
Intermediate: 0
Strong: 0
APP01
принимает 0 конфигураций рукопожатия SSL
Использование ssldiagnos.exe из RDS02
(устранена ошибка рукопожатия):
[+] Testing STRONG: TLS 1, ECDHE-RSA-AES256-SHA (256 bits) ... CONNECT_OK SEND_OK RECEIVE_OK CERT_OK
[+] Testing STRONG: TLS 1, DHE-RSA-AES256-SHA (256 bits) ... CONNECT_OK SEND_OK RECEIVE_OK CERT_OK
[+] Testing STRONG: TLS 1, ECDHE-RSA-AES128-SHA (128 bits) ... CONNECT_OK SEND_OK RECEIVE_OK CERT_OK
[+] Testing STRONG: TLS 1, DHE-RSA-AES128-SHA (128 bits) ... CONNECT_OK SEND_OK RECEIVE_OK CERT_OK
[+] Testing STRONG: TLS 1.1, ECDHE-RSA-AES256-SHA (256 bits) ... CONNECT_OK SEND_OK RECEIVE_OK CERT_OK
[+] Testing STRONG: TLS 1.1, DHE-RSA-AES256-SHA (256 bits) ... CONNECT_OK SEND_OK RECEIVE_OK CERT_OK
[+] Testing STRONG: TLS 1.1, ECDHE-RSA-AES128-SHA (128 bits) ... CONNECT_OK SEND_OK RECEIVE_OK CERT_OK
[+] Testing STRONG: TLS 1.2, ECDHE-RSA-AES256-SHA384 (256 bits) ... CONNECT_OK SEND_OK RECEIVE_OK CERT_OK
[+] Testing STRONG: TLS 1.2, ECDHE-RSA-AES256-SHA (256 bits) ... CONNECT_OK SEND_OK RECEIVE_OK CERT_OK
[+] Testing STRONG: TLS 1.2, DHE-RSA-AES256-GCM-SHA384 (256 bits) ... CONNECT_OK SEND_OK RECEIVE_OK CERT_OK
[+] Testing STRONG: TLS 1.2, DHE-RSA-AES256-SHA (256 bits) ... CONNECT_OK SEND_OK RECEIVE_OK CERT_OK
[+] Testing STRONG: TLS 1.2, ECDHE-RSA-AES128-SHA256 (128 bits) ... CONNECT_OK SEND_OK RECEIVE_OK CERT_OK
[+] Testing STRONG: TLS 1.2, ECDHE-RSA-AES128-SHA (128 bits) ... CONNECT_OK SEND_OK RECEIVE_OK CERT_OK
[+] Testing STRONG: TLS 1.2, DHE-RSA-AES128-GCM-SHA256 (128 bits) ... CONNECT_OK SEND_OK RECEIVE_OK CERT_OK
[+] Testing STRONG: TLS 1.2, DHE-RSA-AES128-SHA (128 bits) ... CONNECT_OK SEND_OK RECEIVE_OK CERT_OK
-= SUMMARY =-
Weak: 0
Intermediate: 0
Strong: 15
APP01
принимает 15 конфигураций рукопожатия SSL
Schannel
Помогите
Любая помощь для решения этой проблемы будет приветствоваться
Редактировать 1
Здесь RDS01
Экспорт куста реестра SCHANNEL после включения всех (кроме SSL 2.0) вручную с помощью IIS Crypto для явного объявления их включенными
{schannel}=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL
[{schannel}]
"EventLogging"=dword:00000001
[{schannel}\Ciphers]
[{schannel}\Ciphers\AES 128/128]
"Enabled"=dword:ffffffff
[{schannel}\Ciphers\AES 256/256]
"Enabled"=dword:ffffffff
[{schannel}\Ciphers\DES 56/56]
"Enabled"=dword:ffffffff
[{schannel}\Ciphers\NULL]
"Enabled"=dword:ffffffff
[{schannel}\Ciphers\RC2 128/128]
"Enabled"=dword:ffffffff
[{schannel}\Ciphers\RC2 40/128]
"Enabled"=dword:ffffffff
[{schannel}\Ciphers\RC2 56/128]
"Enabled"=dword:ffffffff
[{schannel}\Ciphers\RC4 128/128]
"Enabled"=dword:ffffffff
[{schannel}\Ciphers\RC4 40/128]
"Enabled"=dword:ffffffff
[{schannel}\Ciphers\RC4 56/128]
"Enabled"=dword:ffffffff
[{schannel}\Ciphers\RC4 64/128]
"Enabled"=dword:ffffffff
[{schannel}\Ciphers\Triple DES 168]
"Enabled"=dword:ffffffff
[{schannel}\CipherSuites]
[{schannel}\Hashes]
[{schannel}\Hashes\MD5]
"Enabled"=dword:ffffffff
[{schannel}\Hashes\SHA]
"Enabled"=dword:ffffffff
[{schannel}\Hashes\SHA256]
"Enabled"=dword:ffffffff
[{schannel}\Hashes\SHA384]
"Enabled"=dword:ffffffff
[{schannel}\Hashes\SHA512]
"Enabled"=dword:ffffffff
[{schannel}\KeyExchangeAlgorithms]
[{schannel}\KeyExchangeAlgorithms\Diffie-Hellman]
"Enabled"=dword:ffffffff
[{schannel}\KeyExchangeAlgorithms\ECDH]
"Enabled"=dword:ffffffff
[{schannel}\KeyExchangeAlgorithms\PKCS]
"Enabled"=dword:ffffffff
[{schannel}\Protocols]
[{schannel}\Protocols\Multi-Protocol Unified Hello]
[{schannel}\Protocols\Multi-Protocol Unified Hello\Client]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000
[{schannel}\Protocols\Multi-Protocol Unified Hello\Server]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000
[{schannel}\Protocols\PCT 1.0]
[{schannel}\Protocols\PCT 1.0\Client]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000
[{schannel}\Protocols\PCT 1.0\Server]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000
[{schannel}\Protocols\SSL 2.0]
[{schannel}\Protocols\SSL 2.0\Client]
"DisabledByDefault"=dword:00000001
"Enabled"=dword:00000000
[{schannel}\Protocols\SSL 2.0\Server]
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000001
[{schannel}\Protocols\SSL 3.0]
[{schannel}\Protocols\SSL 3.0\Client]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000
[{schannel}\Protocols\SSL 3.0\Server]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000
[{schannel}\Protocols\TLS 1.0]
[{schannel}\Protocols\TLS 1.0\Client]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000
[{schannel}\Protocols\TLS 1.0\Server]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000
[{schannel}\Protocols\TLS 1.1]
[{schannel}\Protocols\TLS 1.1\Client]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000
[{schannel}\Protocols\TLS 1.1\Server]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000
[{schannel}\Protocols\TLS 1.2]
[{schannel}\Protocols\TLS 1.2\Client]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000
[{schannel}\Protocols\TLS 1.2\Server]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000
2 ответа
Я был укушен, когда устанавливал каналы на стороне клиента не обратно совместимым способом в прошлом. Вам, вероятно, следует взглянуть на протоколы на стороне клиента на RDS01.
В вашей ситуации я бы использовал IIS Crypto, чтобы включить все протоколы на стороне клиента на RDS01 (временно), установив все флажки и используя настройки "установить протокол на стороне клиента", а затем применить лучшие практики без "установить протокол на стороне клиента".
Это должно исключить любые проблемы конфигурации на стороне клиента.
РЕДАКТИРОВАТЬ:
Если это не сработает, я бы предложил использовать Wireshark для захвата и разбора рукопожатий и посмотреть, какие именно криптографические наборы представлены RDS01. Лично я бы запустил его на APP01, чтобы легко сравнить хорошее рукопожатие с плохим.
Отладка с помощью WireShark дала мне много TCP фрагментации и повторной передачи. После настройки роутера MSS корректно устанавливаются квитирования SSL.
Мои извинения за неполный вопрос, RDS01
а также RDS02
серверы находятся в одной сети, связанной с APP01
сеть через шлюз IPSec VPN. поскольку RDS02
работал, я не рассматривал эту возможность.
Чтобы решить мою проблему, я использовал эту таблицу и нашел MMS = 1384
1500 Standard MTU
- 20 IP Header
- 24 GRE Encaps.
- 52 IPSec Encaps.
- (8) PPPoE (optional)
- 20 TCP Header
-------
= 1384 MMS
Откройте страницу администрирования маршрутизатора и установите новый MTU или MSS