达梦数据库 登录“6061:通信加密协商失败”的解决办法

问题:

达梦数据库开启了应用层通信加密,也就是COMM_ENCRYPT_NAME设置了加密算法,然后manager等java类型的客户端就无法登录了,然disql命令行工具还是可以登录。

直觉告诉我这肯定又是java在作怪,因为命令行工具disql登录是没有问题的呀。我们来解剖一下问题。

进一步测试发现:

COMM_ENCRYPT_NAME设置为“AES128_ECB/AES128_CBC/AES128_CFB/AES128_OFB”的任意一个,用达梦数据库的图形化客户端工具manager去连接登录都没有问题,而设置为“AES192_ECB/AES192_CBC/AES192_CFB/AES192_OFB/AES256_ECB/AES256_CBC/AES256_CFB/AES256_OFB”中的任意一个去登录时,却出现了“6061:通信加密协商失败”的错误。

发现错误,我们第一时间要看报错日志。

在dmdbms/log/tool.log日志文件里的“通信加密协商失败”附近发现了详细而又核心的报错信息:

“Caused by: java.security.InvalidKeyException: Illegal key size or default parameters ”

将这个关键信息键入百度,度娘告诉我们应该去这里找答案:

Caused by: java.security.InvalidKeyException: Illegal key size or default parameters 解决方案_BUG指挥官的博客-CSDN博客

通过学习这个博客,我们知道了问题就是美国的出口限制,限制高安全的产品对外出口,因为老美有制度C1级(D1<C2<C1<B3<B2<B1<A)以上安全级的信息安全产品是不能对外出口的。

简而言之,就是SUN公司遵循漂亮国的信息安全产品出国规章制度,只能出口低安全级别的信息安全产品,而AES192/AES256算法是密钥长度达到192位/256位的算法,属于高安全算法,它在漂亮国的制度里是不可以出口的。AES128是低安全级别的算法,可以出口给漂亮国以外的国家使用。这个问题是SUN公司(现在叫做Oracle公司)的JDK引入的,只要修改它的设置或用其他的JDK来替换它,就可以解决。

问题知道了我们怎么去解决呢?

解决办法1:继续用Oracle公司的JDK,但是替换两个jar文件以去掉这个出口限制。

  1. 下载jce:

JDK7的下载地址:

http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

JDK8的下载地址:

http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

将local_policy.jar和US_export_policy.jar两个文件替换到dmdbms/jdk/jre/lib/security/下对应的文件。

“java -version”查出来是1.8版本的JDK就下载“JDK8的下载地址”中的文件去替换,查出来是 1.7版本的JDK就下载“JDK7的下载地址”中的文件去替换.

替换之后重现启动数据库服务、重新启动manager图形化工具,即可。

解决办法2:用OpenJDK来替换Oracle公司的JDK。

将dmdbms下的jdk文件夹备份成jdk-oracle文件夹,然后将openjdk文件夹拷入到dmdbms下,重命名为jdk文件夹,然后用“java -version”查看到版本信息里有“openJDK”字样,再重新启动manager程序去登录。

需要注意的是截图上是64位的1.8版本的OpenJDK,替换64位的1.8版本的JDK,不能拿32位的1.8版本去替换,如果拿32位的jdk替换后客户端工具会打不开。

解决办法3:将manager使用的JDK指向到你机器上其他的JDK。

打开manager.ini文件,将-vm下的“../jdk/bin”替换成你机器上其他JDK的路径,如:“D:\Java\OpenJDK1.8_x64\bin”

保存文档后,重新打开manager再试。

如果你觉得这篇文章对你有益,解决了你的问题,记得打赏哦

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值