与第三方系统对接 jdk1.6 Could not generate DH keypair处理方法

今天在与某客户做系统对接时,调用对方接口,提示错误“ Could not generate DH keypair”,

在网上查了下,说是Java 早期版本是只支持 1024 位的 DH Parmaeter的。

通过https://www.ssllabs.com/ssltest/analyze.html?d=访问地址,发现对方服务器DHE最低是支持2048,目前项目用到的JDK

版本DHE算法不支持,所以会出现上述错误。

有两个解决方法

一、升级自己的jre(本地开发系统升级JDK)到JAVA8 。

不过更换版本不是最好的解决方案,升级JDK版本可能会对项目有影响,只能做为一个备选方案。

二、修改jre(本地开发系统升级JDK) 配置    

bcprov-ext-jdk15on-1.59.jar

bcprov-jdk15on-1.59.jar

然后下载完毕之后就需要将这两个jar包放到  $JAVA_HOME/jre/lib/ext 下。

接下来修改文件java.security,这个文件的位置在$JAVA_HOME/jre/lib/security/ 下,

打开此文件,找到security.provider.8 (具体看自己用的jre,如果最后一个是security.provider.9,下面依次加1),在这句话下面加上:

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

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

附上面两个jar的maven坐标

<dependency>
	    <groupId>org.bouncycastle</groupId>
	    <artifactId>bcprov-jdk15on</artifactId>
	    <version>1.59</version>
	</dependency>
	 
	<dependency>
	    <groupId>org.bouncycastle</groupId>
	    <artifactId>bcprov-ext-jdk15on</artifactId>
	    <version>1.59</version>
	</dependency>

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值