解决 javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair

在本人工作的过程中,遇到了形形色色的问题。当时琢磨了好久才琢磨出这样的总结,贴出来供大家参考参考。以下观点仅代表本人在工作过程中的观点,望大家能够共同讨论,查漏补缺。

当时我处理这个问题的时候,在网上查阅了很多的资料,大致的解决方法都是三种:

1、升级你使用的Java版本到 java 8
2、调整https使用的dhparam 指定1024位
3、修改服务器使用1024位dhparam

对于这三种解决方法来说,我都尝试过。

首先第一种方法的话,因为Java8版本是颠覆性的,一旦换了之后代码就会发生不同程度的报错问题。因此个人不推荐。

其次就是第二种方法以及第三种方法,操作起来比较复杂,网上也有挺多的解释,所以我也不在这里详说了。不说的原因一是复杂,而是其解决的方法对于我而言没有起到作用,就算改了还是会报出原来的异常。

因此,在进行反复的查阅资料,去了各种网站看了相关的解决方法之后,我终于将这个问题解决的。现在就将我解决的方法大致总结一下:

解决这个异常的重点就在于下载两个jar包:

bcprov-ext-jdk15on-1.52

bcprov-jdk15on-1.52

传送门1:http://download.csdn.net/detail/a2279860a/9754944
传送门2:http://download.csdn.net/download/a2279860a/10106133

这是CSDN的下载,需要1积分进行下载。大家也可以留个邮箱在这篇帖子的评论区,我看到之后可以发送到你们的邮箱。
(补充说明:最近翻出这篇帖子才发现原本的资源竟然已经被系统自动提到了15分的资源分,我的天....找了很久也没有找到降低资源分的方法,找客服也不回复....无奈只能重新上传一个了,就是 传送门2 那个地址,由于只能最低设置2分资源分,所以各位大哥就将就下吧,如果以后出现了下载分有提升上去了,麻烦好心人知会我一声...我好重新上传啊啊啊啊。以上两个地址都可以下载。土豪请随意....)

然后下载完毕之后就需要将这两个jar包放到

$JAVA_HOME/jre/lib/ext

放在指定的目录下之后,接下来就需要对一个文件进行编辑

这个文件的位置在

$JAVA_HOME/jre/lib/security/

对这个路径下的java.security文件进行修改
找到security.provider.9,然后在这句话下面加上:

security.provider.10=org.bouncycastle.jce.provider.BouncyCastleProvider

加上了之后,重启应用就可以运行了。

当然,网上还有另外一种说法就是在security.provider.2下面加上那句语句,但是对我而言不起作用,如果在security.provider.9下面加上该语句不起作用的话,大家也可以尝试一下在security.provider.2下面添加上该语句

你可能感兴趣的:(解决 javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair)