2012-01-08 6 views
5

私は、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が独自のコンテキストを作成するようにも見えるので、デフォルトの設定は役に立ちません)。

答えて

-1

特定のプロトコルの選択については、startHandshakeを呼び出す前にSSLSocket.setEnabledProtocolsを試してみましたか?

ハンドシェイクタイムアウトの設定では、SSLCertificateSocketFactoryを使用できます。

+1

SSLCertificateSocketFactoryからタイムアウトを設定する必要があるソケットを取得した場合、自動的にstartHandshakeが呼び出されるため、ソケットインスタンスでプロトコルを設定する機会はありません。 – superfell

関連する問題