Java 7u9
标题中的错误消息是:“致命错误:80:展开网络记录的问题”。所以不会让我在标题中加上“问题”。
我正在构建一个针对 Netty 的 Java HTTPS 客户端。SSL 握手一直有效,直到我添加了“HTTPS”端点识别算法以启用服务器主机名验证:
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