我想知道 JDK 1.8 是否支持DH密钥长度为4096位。
我搜索到的每个地方,我发现jdk.tls.ephemeralDHKeySize
只能接受1024到2048位之间的。
我必须连接到支持
的网站" TLS_DHE_RSA_WITH_AES_128_GCM_SHA256(0x9e)DH 4096位(p:512,g: 1,Ys:512)"。
但我得到了
"无法生成DH密钥对"例外。
编辑:
添加一些额外信息,
我正在使用Apache httpclient-4.2.5连接到该站点。 服务器还支持
" TLS_DHE_RSA_WITH_AES_256_GCM_SHA384(0x9f) - 4096位"。
当我使用JDK 1.8并尝试连接时,服务器正在选择密码套件,但JDK 1.8仅支持2048位,并且我的连接失败。
编辑:
Bouncy castle可用作支持4096位的变通方法。 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6521495
答案 0 :(得分:0)
显然它适用于Windows和OS X,但不适用于Linux。不要问为什么,我所知道的是Windows和OS X客户端可以通过Java连接到密钥大小为4096的服务器,而Linux客户端则不能。
https://bugzilla.redhat.com/show_bug.cgi?id=1163501
它还没有在Fedora中修复,所以它可能需要很长时间才能进入CentOS / RHEL。