私のサーバーは、SSLv3 と TLS1.0 プロトコルの両方を受け入れるように構成されています。しかし、少数のクライアントが以下のハンドシェイク パラメータを送信しており、サーバー ハローの後、クライアントは接続を切断し、'handshare failure(40)' アラートを送信します。それがクライアントの障害なのかサーバーなのか不明です。
最初のクライアント hello パケットは次のとおりです。
Secure Socket Layer
SSLv3 Record Layer: Client Hello
Content Type: Handshake (22)
Version: SSL 3.0 (0x0300) <-----------------
Length: 103
Handshake Protocol: Client Hello
Handshake Type: Client Hello (1)
Length: 78
Version: TLS 1.0 (0x0301) <-------------
Random
Session ID Length: 0
Cipher Suites Length: 18
Cipher Suites (9 suites)
レコード層は SSL 3.0 ですが、内部のハンドシェイク プロトコルは TLS 1.0 です。私の質問は、これは正しい方法ですか、つまり、レイヤーごとに異なるバージョンを使用することですか? それはどのような方法ですか?どこにも見つかりません。RFC を調べましたが、参照が見つかりません。また、どうすればそのようなリクエストを作成できますか?
編集: 問題のトラブルシューティングや修正には興味がありません。そのようなパケットを送信する方法を知りたいだけですか? 何かコマンド?そして、このメソッドに何と名前を付ける必要がありますか? つまり、curl または openssl を使用して ssl3 または tls1 を使用できますが、レコード レイヤーとハンドシェイク レイヤーの両方で同じバージョンを送信します。
curl -v -ssl3 https://www.mywebserver.com
上記の curl コマンドは、wireshark を参照します。
EDIT2:これは合法ですか?私はグーグルで探し回っていますが、例が見つかりません。rfc標準に違反していますか?
ありがとう