私は、SSL/TLSにアップグレードされた通常のプレーンソケットがあるプロトコルを持っています。私は、SSLハンドシェイクの処理のタイムアウトと、許可されたプロトコルのバージョンなどの他のパラメータを制御できるようにする必要があります。 (例えば、SSLv3をオフにする)。あなたはjavax.net.ssl.SSLSocketFactory
経由でハンドシェークタイムアウトを除くすべてこの操作を行うことができSSLSocketFactory設定ハンドシェイクタイムアウトとソケットのプロパティ
、あなたはその後、握手にstartHandshake
を呼び出し、返さSSLSocket
の追加設定を設定し、createSocket(socket, host port, autoClose)
を呼び出すことができます。しかし、ハンドシェイクのタイムアウト設定を行う方法はないようで、デフォルト設定はやや小さいです。
恐れ入りますが、これはハンドシェイクタイムアウトの設定を制御することができますが、createSocket(socket, host, port, autoClose)
の動作も実際のハンドシェイクを変更するので、SSLSocketを工場から戻すときSSLv3を無効にするなど、ハンドシェイクに影響を与える何か他のことに遅れています。
両方を実行する方法はありますか?私はApi v8でこれを行うことができる必要があります
(SSLContext/SSLParametersは有用かもしれませんが、Api v9ですが、SSLCertificateSocketFactoryが独自のコンテキストを作成するようにも見えるので、デフォルトの設定は役に立ちません)。
SSLCertificateSocketFactoryからタイムアウトを設定する必要があるソケットを取得した場合、自動的にstartHandshakeが呼び出されるため、ソケットインスタンスでプロトコルを設定する機会はありません。 – superfell