我想知道 JDK 1.8 是否支持 4096 位的 DH key 长度。
到处搜索,我发现 jdk.tls.ephemeralDHKeySize
只能接受 1024 到 2048 位之间。
我必须连接到一个支持
的站点"TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (0x9e) DH 4096 bits (p: 512, g: 1, Ys: 512)".
但是我得到了
“无法生成 DH key 对”异常。
编辑:
添加一些额外的信息,
我正在使用 Apache httpclient-4.2.5 连接到站点。 服务器也支持
"TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (0x9f) - 4096 bits".
当我使用 JDK 1.8 并尝试连接时,服务器选择了密码套件,但 JDK 1.8 仅支持 2048 位,我的连接失败了。
编辑:
Bouncy caSTLe 可用作支持 4096 位的解决方法。 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6521495
最佳答案
显然它适用于 Windows 和 OS X,但不适用于 Linux。不要问为什么,我只知道 Windows 和 OS X 客户端可以通过 Java 连接到 key 大小为 4096 的服务器,而 Linux 客户端不能。
https://bugzilla.redhat.com/show_bug.cgi?id=1163501
它甚至还没有在 Fedora 中得到修复,所以它可能需要相当长的时间才能进入 CentOS/RHEL。
关于ssl - JDK 1.8 是否支持具有 4096 位大小的 Diffie-Hellman (DH) key 的密码套件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29745760/