设置" jsse.enableSNIExtension"的安全后果是什么?是假的?

时间:2015-08-18 08:17:02

标签: java ssl https sslhandshakeexception sslexception

我目前有一个应用程序可以对很多URL发出HTTP post请求。某些连接失败,但有以下异常。

  

线程中的异常" main" javax.net.ssl.SSLProtocolException:   握手警报:unrecognized_name at   sun.security.ssl.ClientHandshaker.handshakeAlert(ClientHandshaker.java:1410)     at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:2004)     at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1113)     在   sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1363)     在   sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1391)     在   sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1375)     在   sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:563)     在   sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)     在   sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:153)     在   com.amazon.cba.iopn.test.MainTest.connectWithFallbackIfRequired(MainTest.java:246)     在   com.amazon.cba.iopn.test.MainTest.createHttpConnection(MainTest.java:201)     在com.amazon.cba.iopn.test.MainTest.processLine(MainTest.java:105)     在com.amazon.cba.iopn.test.MainTest.main(MainTest.java:99)

我从网上读到其他文章后发现,这是服务器配置的问题。响应中的服务器抛出一个警告,Java将其视为异常。解决方法是将 jsse.enableSNIExtension 设置为" false "。

  • 如果 jsse.enableSNIExtension 系统属性设置为 false ,客户端会暴露哪些安全风险?

PS: 我们尝试通过HTTPS连接的所有网址。因此,将有证书验证。

1 个答案:

答案 0 :(得分:5)

来自oracle(http://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html)的

  

它支持与虚拟服务器的TLS连接,其中不同网络名称的多个服务器托管在单个底层网络地址

如果禁用jsse.enableSNIExtension,您将无法连接到虚拟服务器下的页面