使用Navicat12客户端的SSL方式连接MySQL数据库报错,提示2026 - SSL connection error error 14082174错误的解决方法

问题描述

今天在更新了最新版Navicat Premium 12.1.22之后,按照之前使用11版本的配置,在SSL配置中选择好CA证书、客户端key和客户端cer,使用正确的用户名密码,测试无法连接,提示如下:

2026 - SSL connection error: error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small

使用Navicat12客户端的SSL方式连接MySQL数据库报错,提示2026 - SSL connection error error 14082174错误的解决方法_第1张图片
所有的配置和使用Navicat Premium 11版本时都是一样的,但是无法连接

我使用的是Apache+Mysql+PHP的环境


解决方案

在Navicat Premium 12版本中配置SSL信息时,输入和Apache(根据自己的服务器环境决定)配置的SSLCipherSuite指令相同的字符串,即可让Navicat强制使用和服务器一样的SSLCipherSuite信息,即可连接成功。
使用Navicat12客户端的SSL方式连接MySQL数据库报错,提示2026 - SSL connection error error 14082174错误的解决方法_第2张图片


问题分析

查找相关资料,判断可能是Navicat12版本中由于安全考虑,会对SSL连接的相关安全标准进行强制要求,而服务器中配置的环境又和这个强制要求不匹配,所以需要让Navicat按照服务器的标准来进行连接。而11版本面世比较早,并没有这个强制要求,所以不需要进行配置。

这个文章给了一些参考:参考文章

关键信息为如下语句,给了我一定的启发

You should use 2048-bit Diffie-Hellman groups or larger. You should not be using 512-bit or 1024-bit Diffie-Hellman groups.
The first thing to check for is your cipher list string. It should be similar to:
“HIGH:!aNULL:!MD5:!RC4”


后记

我的这个解决方案只是临时应急的处理方式,随着时代的进步,以前安全的协议和标准可能变得不那么安全了,所以需要使用更复杂、安全级别更高的协议和方式,所以万全之策还是仔细研究一下SSLCipherSuite更加安全合理的配置,提高服务器环境的安全级别。

希望对遇到同样问题的人有所帮助。

你可能感兴趣的:(学习笔记#服务器相关)