首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java7和Java8之间的SSL兼容性?

Java7和Java8之间的SSL兼容性?
EN

Stack Overflow用户
提问于 2015-06-18 14:54:07
回答 1查看 647关注 0票数 0

我们有一个运行在Java 7上的服务器端进程:java -version: java版本"1.7.0“Java(TM) SE运行时环境(build 1.7.0-b 147) java HotSpot(TM) 64位服务器VM (build 21.0-b17,混合模式)

它接受来自本地java应用程序的SSL连接(通过正确签名的JNLP启动)。

通常,无论客户端应用程序是在Java 6还是Java 7 JVM中运行,这都像梦一样工作。

但是,当使用Java 8(从MAC)启动同一个客户端应用程序时,我们遇到一个SSL问题,服务器断开连接(我们与wireshark检查以确认),但有以下例外: sun.security.ssl.Alerts.getSSLException(Alerts.java:208):坏记录MAC at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1605) at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1573) at sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:971)在sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:876) at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:750) at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624)

..。

基于此,错误非常模糊.https://security.stackexchange.com/questions/39844/getting-ssl-alert-write-fatal-bad-record-mac-during-openssl-handshake

基于MAC的JVM版本: Java 8更新45

我尝试过的事情:

SSLEngine engine = getSslContext().createSSLEngine(); String[] avail = engine.getSupportedCipherSuites(); Set availableCiphers = new HashSet(Arrays.asList(avail)); availableCiphers.retainAll(GOOD_CIPHERS); engine.setEnabledCipherSuites(this.availableCiphers.toArray(new String[this.availableCiphers.size()]));

  • 令人惊讶的是,当使用jdk1.6.0_20在本地运行服务器进程时,此错误不会发生,而且一切正常。

请告诉我哪些补充资料将有助于找出这一问题的原因/解决办法。

EN

回答 1

Stack Overflow用户

发布于 2015-06-18 19:41:21

将服务器的JDK升级到最新的java7版本似乎解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30918828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档