javax.net.ssl.SSLProtocolException:handshake alert:java 1.8上的无法识别的名称
问题描述:
我的eclipse插件应用程序仍然获取SSLProtocolException:握手警报:java版本“1.8.0_141”上的无法识别的名称,尽管我遵循一些提示禁用了SNI扩展。javax.net.ssl.SSLProtocolException:handshake alert:java 1.8上的无法识别的名称
[INFO] Property jsse.enableSNIExtension=false
[FATAL] javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name
at sun.security.ssl.ClientHandshaker.handshakeAlert(Unknown Source)
at sun.security.ssl.SSLSocketImpl.recvAlert(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Unknown Source)
请帮我解决这个问题,谢谢。
答
如果与SNI一起发送的名称是意外的,则无法识别的名称警报可能会被服务器发回。但是如果服务器要求使用SNI并且客户端没有发送服务器名称,它也可能被发回。像你这样禁用SNI可以触发第二种情况,即服务器需要SNI,但客户端不提供它。
解决此错误的正确方法是使用SNI扩展名并将名称设置为服务器预期的名称。