【问题标题】:JDK 1.6 and SSL connectionJDK 1.6 和 SSL 连接
【发布时间】:2015-01-16 00:36:04
【问题描述】:

我的 java 版本是 1.6,并使用轴 2 存根通过 ssl 连接到服务器;过去一切都很好。似乎他们做了一些升级(apache2.4)并且ssl握手不再发生。我收到 javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake 错误。仅出于测试目的,我在本地安装了 jdk 8 并测试它工作正常。有没有办法使用 jdk1.6 来完成这项工作?现在无法升级jdk。

【问题讨论】:

  • "现在无法升级jdk。"您知道 JDK 1.6 不再受支持,对吧?一个好的 Java 应用程序应该无缝地(或至少很容易地)在新版本上运行。您可以尝试另一种 SSL 实现,SSL 实现是 Java 中的 plugable(付费软件)。

标签: java ssl


【解决方案1】:

您可以尝试使用第 3 方 JCE 提供程序,想到 Bouncy Castle: https://www.bouncycastle.org

【讨论】:

【解决方案2】:

如果没有更多细节就很难说,但我猜服务器要么需要 JDK 6 不支持的 TLS 版本(例如 TLS 1.1 或 TLS 1.2),要么使用 JDK 6 还不支持的密码。另一种选择可能是服务器需要 JDK 6 不支持的 SNI(服务器名称指示)。如果问题是其中任何一个问题,那么不幸的是,您对 JDK 6 不走运。

我建议您与SSLLabs 联系以获取有关该问题的更多详细信息。它们还显示有关各种 JDK 版本的兼容性信息。

【讨论】:

  • Steffen,请告诉我您需要哪些详细信息?谢谢。
  • 首先,你试过ssllabs吗?如果服务器是公开的,最好知道 URL,以便查看服务器。
  • 这不是公共网址。我无法检查 ssllabs。谢谢。
  • 那么就很难帮忙了,因为即使可以访问服务器也很难进行 SSL 调试。您可以尝试对github.com/noxxi/p5-io-socket-ssl/blob/master/util/… 进行分析服务器,但您需要有一个具有最新 IO::Socket::SSL 和 Net::SSLeay 的 Perl 才能使用该程序。您可能还可以使用其他 SSL 分析器来找出服务器支持的密码和协议。如果是内部服务器,您还可以与设置系统的服务器交谈并指出您的问题。
  • 如果它不是公开的,通常可以在内部使用 OpenSSL:openssl s_client -servername the.host.name -connect the.host.name:443(带有 SNI)并且没有 -servername the.host.name 不使用 SNI。您还可以使用-ssl3-tls1-tls1_1-tls1_2 来尝试不同的 SSL/TLS 版本。也有密码套件的选项。
猜你喜欢
  • 2011-12-09
  • 1970-01-01
  • 2013-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多