【问题标题】:Exception in thread "main" javax.ws.rs.ProcessingException: javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name线程“主”javax.ws.rs.ProcessingException 中的异常:javax.net.ssl.SSLProtocolException:握手警报:unrecognized_name
【发布时间】:2015-12-04 17:20:28
【问题描述】:

我是 REST 新手,我最近开发了一个小型 java REST 客户端来使用 jersey 通过 SSL (https) 使用 api。但是,我面临以下错误的挑战:

线程“主”javax.ws.rs.ProcessingException 中的异常:javax.net.ssl.SSLProtocolException:握手警报:unrecognized_name ........... ........... 引起:javax.net.ssl.SSLProtocolException:握手警报:unrecognized_name

我读过一些关于在 java 中禁用 SNI 的帖子,但我不清楚。 由于我使用的是 eclispe IDE,我将“-Djsse.enableSNIExtension=false”附加到我的 eclipse.ini 文件中,但错误仍然出现。 谁能指出我正确的方向?

【问题讨论】:

  • 我使用的是System.setProperty("jsse.enableSNIExtension", "false");,但它不再适用于java version "1.7.0_79" OpenJDK Runtime Environment (IcedTea 2.5.6) (7u79-2.5.6-0ubuntu1.14.04.1) 上的握手异常。
  • @PLA,谢谢。我正在使用 Java 版本“1.8.0_66”Java(TM) SE 运行时环境(构建 1.8.0_66-b18)。我不确定最佳解决方案,过去 24 小时一直在谷歌搜索!
  • -Djsse.enableSNIExtension=false 放在eclipse.ini 中时可能无效。如果您在 Eclipse 中运行应用程序,则此参数应位于应用程序的运行配置选项中。
  • 您是否检查过您尝试连接的主机名是否与服务器证书中的主机名(服务器预期的主机名)匹配?
  • @Bruno 我还没有使用证书。谢谢

标签: java web-services rest ssl


【解决方案1】:
  1. 确保您的 CA 证书文件包含您要连接的证书。

  2. 下载并安装 JCE for java 1.8 (http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip)

  3. 删除 -Djsse.enableSNIExtension=false

【讨论】:

【解决方案2】:

我意识到有必要通过将安全上下文设置为“TLSv1”并使用 TrustManager 和 HostnameVerifier 来处理异常(“javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name”)(参见下面的 sn-p )。这为我解决了这个问题。

        SSLContext sc = SSLContext.getInstance("TLSv1");
        System.setProperty("https.protocols","TLSv1");

        TrustManager[] trustAllCerts = {new InsecureTrustManager()};
        sc.init(null, trustAllCerts, new java.security.SecureRandom());
        HostnameVerifier allHostsValid = new InsecureHostnameVerifier();

【讨论】:

  • 您真的想使用不安全的信任管理器和主机名验证器吗?
  • @Bruno ,因为这不在生产环境中,所以当前的方法就足够了。
  • 由你决定... 这种变通办法的问题在于,它们最终在生产代码中常常被忽视。 (很容易忘记重新启用正确的验证,尤其是当您接近最后期限并且没有时间弄清楚如何安全地做事时。)
猜你喜欢
  • 1970-01-01
  • 2013-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-28
  • 2015-04-02
  • 1970-01-01
相关资源
最近更新 更多