您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

SSL握手警报:自升级到Java 1.7.0后出现unrecognized_name错误

SSL握手警报:自升级到Java 1.7.0后出现unrecognized_name错误

Java 7引入了认情况下启用的SNI支持。我发现某些配置错误的服务器会在SSL握手中发送“无法识别的名称”警告,大多数客户端会忽略此警告… Java除外。如@Bob Kerns所述,Oracle工程师拒绝“修复”此错误/功能

解决方法是,他们建议设置jsse.enableSNIExtension属性。要允许您的程序无需重新编译即可运行,请按以下方式运行您的应用:

java -Djsse.enableSNIExtension=false yourClass

也可以在Java代码中设置该属性,但是必须在任何SSL操作之前设置该属性。加载SSL库后,您可以更改属性,但不会对SNI status产生任何影响。要在运行时禁用SNI(具有上述限制),请使用:

System.setProperty("jsse.enableSNIExtension", "false");

设置此标志的缺点是SNI在应用程序中的所有位置都被禁用。为了利用SNI并仍然支持配置错误的服务器:

java 2022/1/1 18:13:55 有634人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶