NIOでSSLEngineを使用するアプリケーションを作成しています。クライアントとサーバーの両方を作成しています。クライアントはサーバーに接続できます。接続後、セッションの再開/再ネゴシエーションを実行できるようにしたいと思いますが、現在は運がありません。
SSLEngineを使用するコードはかなり大きいので(SSLEngineの使用法は非常に複雑です!)、状況を示す簡単な擬似コードを記述します。
Server:
global sslcontext initialized once
await new client
client.sslEngine = create new server ssl engine using the global sslcontext
client.handleHandshake and wait for it to be done
handle client.
Client:
global sslcontext initialized once
sslEngine = create new client ssl engine using the global sslcontext
performHandshake and wait for it to be done
disconnect (close gracefully the connection)
sslEngine = create new client ssl engine using the global sslcontext
configure engine to not allow session creation
performHandshake and wait for it to be done
**私はそれから助けになるコードの任意の部分を投稿することをいとわない(私が言ったようにそれは巨大ですが完全なコードでさえ..)
プログラムを実行すると、最初の接続は成功しますが、2番目の接続で例外が発生します。
javax.net.ssl.SSLHandshakeException: No existing session to resume
SSLセッションの再開に必要ないくつかの成分を見逃しましたか?