Java 7u9
タイトルのエラーメッセージは次のとおりです:「致命的なエラー:80:ネットレコードのラップ解除の問題」。だから、タイトルに「問題」を入れさせてくれませんでした。
Nettyに対してJavaHTTPSクライアントを構築しています。サーバーのホスト名検証を有効にするために「HTTPS」エンドポイント識別アルゴリズムを追加するまで、SSLハンドシェイクは機能していました。
SSLEngine engine = tcpHelper.getSSLContext().createSSLEngine();
SSLParameters sslParameters = engine.getSSLParameters();
sslParameters.setEndpointIdentificationAlgorithm("HTTPS");
engine.setSSLParameters(sslParameters);
engine.setUseClientMode(true);
アルゴリズムを追加した後、SSLハンドシェイクがハングし、接続が最終的にタイムアウトします。SSLデバッグを有効にすると(javax.net.debug = all)、サーバーが証明書チェーンを送信した後、ServerHelloの後、ハンドシェイクが失敗することがわかります。
*** ServerHelloDone
1761586552@qtp-1653588482-2, WRITE: TLSv1.2 Handshake, length = 3294
サーバー上。クライアントは証明書チェーンを受信して表示し、次の場合に失敗します。
New I/O worker #3, fatal error: 80: problem unwrapping net record
java.lang.RuntimeException: Delegated task threw Exception/Error
%% Invalidated: [Session-1, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256]
New I/O worker #3, SEND TLSv1.2 ALERT: fatal, description = internal_error
New I/O worker #3, WRITE: TLSv1.2 Alert, length = 2