RDS01
RDS02
APP01
URLを呼び出すhttps://APP01.domain.local/rdweb
:
RDS01
から: チャネルエラー4 (handshake_failure)RDS02
から:応答コード200、証明書チェーンOKssldiagnos.exe from RDS01
の使用(ハンドシェイクの失敗は削除されました):
-= SUMMARY =-
Weak: 0
Intermediate: 0
Strong: 0
APP01
は0のSSLハンドシェイク構成を受け入れます
ssldiagnos.exe from 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ハンドシェイク構成を受け入れます
この問題を解決するための助けは大歓迎です
ここでは、IIS Cryptoを使用してすべて(SSL 2.0を除く)を手動で有効にした後、RDS01
SCHANNELレジストリHiveをエクスポートして明示的に有効として宣言します
{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
私は過去に、クライアント側のチャネルを下位互換性のない方法で設定することに悩まされてきました。おそらく、RDS01のクライアント側プロトコルを確認する必要があります。
あなたの状況では、IIS Cryptoを使用して、すべてのチェックボックスをオンにし、「set client side protocol」を使用して、RDS01で(一時的に)allクライアント側プロトコルを有効にします。 「設定してから、「クライアント側プロトコルの設定」なしでベストプラクティスを適用します。
これにより、クライアント側の構成の問題が除外されます。
編集:
それが機能しない場合は、Wiresharkを使用してハンドシェイクをキャプチャして分析し、RDS01によって提示されている暗号化スイートを正確に確認することをお勧めします。個人的にはAPP01で実行するので、良いハンドシェイクと悪いハンドシェイクを簡単に比較できます。
WireSharkを使用してデバッグすると、多くのTCPフラグメンテーションと再送信が発生しました。ルーターを調整した後 [〜#〜] mss [〜#〜] 設定後、SSLハンドシェイクが正しく確立されます。
質問が不完全なことをお詫びします。RDS01
サーバーとRDS02
サーバーは、IPSecVPNゲートウェイを介してAPP01
ネットワークにリンクされた同じネットワーク上にあります。 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を設定します