【问题标题】:What are the security consequences of setting "jsse.enableSNIExtension" to false?将“jsse.enableSNIExtension”设置为 false 的安全后果是什么?
【发布时间】:2015-11-11 01:52:20
【问题描述】:

我目前有一个应用程序可以向许多 URL 发出 HTTP 发布请求。一些连接失败,但出现以下异常。

线程“主”javax.net.ssl.SSLProtocolException 中的异常: 握手警报:unrecognized_name at sun.security.ssl.ClientHandshaker.handshakeAlert(ClientHandshaker.java:1410) 在 sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:2004) 在 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 连接的所有 URL。所以,会有证书验证。

【问题讨论】:

  • 将 'jsse.enableSNIExtension' 设置为 false 会禁用对整个应用程序的 SNI 支持。如果您连接到单个域或一组固定的域,它们都不支持 SNI,这应该不是问题。但是,如果您的某些域使用 SNI,您的应用将无法连接。 stackoverflow.com/a/14884941/4483015 中详细介绍了尝试阻止配置错误的 SNI 检查的解决方法

标签: java ssl https sslhandshakeexception sslexception


【解决方案1】:

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

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

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

【讨论】:

  • 这实际上并不完全准确。您可以拥有多个虚拟服务器,每个虚拟服务器都有一个单独的 IP。您也可以拥有单个 IP,但所有虚拟主机使用相同的证书(在证书中使用替代名称或使用通配符证书)。
猜你喜欢
  • 2012-08-10
  • 2015-11-11
  • 1970-01-01
  • 2016-05-17
  • 1970-01-01
  • 2017-09-10
  • 2020-05-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多