将“jsse.enableSNIExtension”设置为false会带来什么安全后果?

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

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

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

  • 如果将jsse.enableSNIExtension系统属性设置为false ,则客户端暴露的安全风险是什么?

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

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

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

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