32位linux的Java 8 Diffie-Hellman密钥大小问题



在旧的32位linux系统上将我们的java从1.7升级到1.8后,我们在与Web服务通信时收到以下错误消息:

原因:java.security.InvalidAlgorithmParameterException:DH密钥大小必须是64的倍数,并且只能在512到2048之间(包括512和2048(。不支持特定密钥大小4096

linux发行版是:

uname-

Linux XXX-XXX-S018 2.6.16.21-0.8故障#1 7月3日星期一18:25:39 UTC 2006 i686 i686 i 386 GNU/Linux

分布:

cat/etc/*发布

LSB_VERSION="core-2.0-noarch:core-3.0-noarch:core-2.0-ia32:core-3.0-ia32"SUSE Linux Enterprise Server 10(i586(版本=10

我们使用的Java版本(32位和64位版本相同(

Java版本:

jdk1.8.0_151

奇怪的是,在降级到java1.7之后,它可以毫无问题地工作。

同样的应用程序运行在不同的64位系统上(使用java 1.8(,所以我们认为这可能是操作系统架构(32位(、操作系统的时代(在本例中是2006年(和java的问题。

我们发现了一些关于开放JDK的错误报告,最大长度为2048,但我们目前使用的是oracle的常规JDK。

谢谢你的帮助,

Hauke

请阅读https://www.oracle.com/technetwork/java/javase/8u151-relnotes-3850493.html

在Oracle JRE 8u151中,您将找到java.security文件,并将crypto.policy设置为值'unlimited'

我认为您的JRE7已经安装了无限制JRE强度策略

较新版本(8u161,..(默认启用了无限制强度。

请注意,Oracle JRE 8u151在解码gzip流时存在严重问题。当与web/应用程序服务器(如Tomcat(一起使用时。。您必须禁用流压缩或升级到更高的版本https://bugs.java.com/view_bug.do?bug_id=JDK-8189789

最新更新