javax.net.ssl.SSLException : java. lang.RuntimeException:无法生成 DH key 对

标签 java url ssl java-6 diffie-hellman

使用 JDK1.6 中开发的 Java 代码访问 HTTPS URL 时出现以下错误

    javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair
        at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1649)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1612)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1595)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1172)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1149)
        at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1019)
    at 
sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230)
        at testHTTP.main(testHTTP.java:70)
Caused by: java.lang.RuntimeException: Could not generate DH keypair
        at com.sun.net.ssl.internal.ssl.DHCrypt.<init>(DHCrypt.java:106)
        at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverKeyExchange(ClientHandshaker.java:556)
        at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:183)
        at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:593)
        at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:529)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:893)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1165)
        ... 6 more
Caused by: java.security.InvalidAlgorithmParameterException: Prime size must be multiple of 64, and can only range from 512 to 1024 (inclusive)
        at com.sun.crypto.provider.DHKeyPairGenerator.initialize(DashoA13*..)
        at java.security.KeyPairGenerator$Delegate.initialize(KeyPairGenerator.java:627)
        at com.sun.net.ssl.internal.ssl.DHCrypt.<init>(DHCrypt.java:100)
        ... 13 more



如果我只想使用 JDK1.6,在这种情况下应该怎么做。

请建议

最佳答案

当我开始使用 Java7 时,我的问题已解决,但 DH 问题无法在 Java6 上使用

关于javax.net.ssl.SSLException : java. lang.RuntimeException:无法生成 DH key 对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27440450/

相关文章:

windows - TLS1.2 Powershell HttpWebClient 支持

java - 从自定义测试脚本/代码创建标准测试报告文件

java - sql where 条件中的修剪值

java - java中怎么看名字就知道是类还是接口(interface)?

java - XML 属性解码的空值

java - 如何获取 Java Jersey 客户端请求的 URL?

python - 如何在 Django 中向 URL 添加动态参数

javascript - AJAX URL 中的十进制值

ssl - OpenSSL 自签名根 CA 证书 : Set a start date

amazon-web-services - 我的带有子文件夹的域可以连接到 EC2 吗?