Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssl 无法生成DH密钥对-BouncyCastle和DHParameterSpec异常_Ssl_Https_Httpclient_Bouncycastle_Jce - Fatal编程技术网

Ssl 无法生成DH密钥对-BouncyCastle和DHParameterSpec异常

Ssl 无法生成DH密钥对-BouncyCastle和DHParameterSpec异常,ssl,https,httpclient,bouncycastle,jce,Ssl,Https,Httpclient,Bouncycastle,Jce,我使用HTTP客户端发出一些HTTPS POST请求。一开始一切正常,但过了一段时间我遇到了一个例外 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.se

我使用HTTP客户端发出一些HTTPS POST请求。一开始一切正常,但过了一段时间我遇到了一个例外

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:446)
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:171)
    at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:516)
    at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:454)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:884)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1112)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:623)
    at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59)
    ... 117 more
Caused by: java.security.InvalidAlgorithmParameterException: parameter object not a DHParameterSpec
    at org.bouncycastle.jce.provider.JDKKeyPairGenerator$DH.initialize(Unknown Source)
    at com.sun.net.ssl.internal.ssl.DHCrypt.<init>(DHCrypt.java:100)
    ... 125 more
原因:java.lang.RuntimeException:无法生成DH密钥对
位于com.sun.net.ssl.internal.ssl.DHCrypt.(DHCrypt.java:106)
在com.sun.net.ssl.internal.ssl.ClientHandshaker.serverKeyExchange上(ClientHandshaker.java:446)
在com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:171)上
位于com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:516)
位于com.sun.net.ssl.internal.ssl.Handshaker.process_记录(Handshaker.java:454)
位于com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:884)
位于com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1112)
位于com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:623)
在com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59)上
... 117更多
原因:java.security.invalidalgorithParameterException:参数对象不是DHParameterSpec
位于org.bouncycastle.jce.provider.JDKKeyPairGenerator$DH.initialize(未知源)
位于com.sun.net.ssl.internal.ssl.DHCrypt.(DHCrypt.java:100)
... 125多
BouncyCastle似乎有问题,但我找不到任何有关它的信息!我试图安装无限JCE密钥,但它对我的问题没有任何影响

如果有人能帮助我,那就太好了


谢谢。

经过调查,我的默认安全提供程序似乎被应用程序中的其他内容更改了。使用security.removeProvider删除BouncyCastle,现在一切正常!