小编Uth*_*hra的帖子

JDK 1.8是否支持具有4096位Diffie-Hellman(DH)密钥的密码套件

我想知道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

ssl diffie-hellman java-8 apache-httpclient-4.x

7
推荐指数
1
解决办法
1847
查看次数

连接到"https:"站点时收到"javax.net.ssl.SSLException:java.lang.ArrayIndexOutOfBoundsException"

我正在尝试连接到支持"TLSv1"协议的"https://"站点和以下密码套件,

TLS_DHE_RSA_WITH_AES_256_CBC_SHA(0x39)DH 4096位
TLS_DHE_RSA_WITH_AES_128_CBC_SHA(0x33)DH 4096位

使用Apache的httpclient(Java平台 - JDK 1.7)

它在JDK1.8中运行良好(支持具有DH参数> 1024位的密码套件)

但它在JDK 1.7中失败,但有以下异常,

main, handling exception: java.lang.ArrayIndexOutOfBoundsException: 64
%% Invalidated:  [Session-1, TLS_DHE_RSA_WITH_AES_128_CBC_SHA]
main, SEND TLSv1 ALERT:  fatal, description = internal_error
main, WRITE: TLSv1 Alert, length = 2
[Raw write]: length = 7
0000: 15 03 01 00 02 02 50                               ......P
main, called closeSocket()
main, IOException in getSession():  javax.net.ssl.SSLException: java.lang.ArrayIndexOutOfBoundsException: 64
Run Code Online (Sandbox Code Playgroud)

正如这里的解决方法所示,

http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6521495,我曾尝试使用Bouncy Castle Provider,但仍然得到相同的例外.

任何帮助都会很棒.谢谢.

ssl bouncycastle java-7 indexoutofboundsexception sslexception

3
推荐指数
1
解决办法
8737
查看次数