我们有一个运行在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)
..。
基于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()]));
请告诉我哪些补充资料将有助于找出这一问题的原因/解决办法。
发布于 2015-06-18 19:41:21
将服务器的JDK升级到最新的java7版本似乎解决了这个问题。
https://stackoverflow.com/questions/30918828
复制相似问题