来自远程服务器的Mysql ssl连接

来自远程服务器的Mysql ssl连接,mysql,ssl,Mysql,Ssl,我在一台服务器上安装了一台mysql服务器。我通过在my.cnf的[mysqld]部分中添加以下行启用了SSL: ssl-ca=/etc/mysql/ca-cert.pem ssl-cert=/etc/mysql/server-cert.pem ssl-key=/etc/mysql/server-key.pem 我按照中的步骤生成了这些证书 现在,在同一台服务器上,当我使用以下命令运行mysql客户端时,连接是在启用SSL的情况下建立的: mysql -uuser -p --ssl-ca=/e

我在一台服务器上安装了一台mysql服务器。我通过在my.cnf的[mysqld]部分中添加以下行启用了SSL:

ssl-ca=/etc/mysql/ca-cert.pem
ssl-cert=/etc/mysql/server-cert.pem
ssl-key=/etc/mysql/server-key.pem
我按照中的步骤生成了这些证书

现在,在同一台服务器上,当我使用以下命令运行mysql客户端时,连接是在启用SSL的情况下建立的:

mysql -uuser -p --ssl-ca=/etc/mysql/ca-cert.pem
mysql -uuser -hserver.asdf -p --ssl-cert=client-cert.pem --ssl-key=client-key.pem
现在,当我尝试从远程服务器执行同样的操作时

mysql -uuser -hserver.asdf -p --ssl-ca=ca-cert.pem
,我得到以下错误:

ERROR 2026 (HY000): SSL connection error
在中,我复制了以前使用的相同ca-cert.pem文件。但当我运行以下命令时,会在启用SSL的情况下建立连接:

mysql -uuser -p --ssl-ca=/etc/mysql/ca-cert.pem
mysql -uuser -hserver.asdf -p --ssl-cert=client-cert.pem --ssl-key=client-key.pem
据我所知,只有当我们希望服务器对客户机进行身份验证时,mysql客户机命令中才需要,-ssl cert和--ssl key参数,而这些参数实际上并不是必需的。但为什么我可以在使用这些参数时连接,而不是其他参数

更新


在提出这个问题的过程中,我认为还有一些其他重要的因素并不重要。使用的mysql服务器包版本为Percona-server-51-5.1.73,本地服务器上的mysql客户端包为Percona-client-51-5.1.73。但是在远程服务器上,mysql客户端包是Percona-client-51-5.1.61

事实证明,在最近的Percona mysql版本中,Percona mysql包在SSL方面做了一些重大更改。percona mysql包的所有较旧版本都支持yaSSL,而较新版本则使用OpenSSL

之所以这样做,是因为带有yaSSL构建的包显然是用来导致某些程序崩溃的。有关此错误的更多详细信息,请参见:

由于这个问题是从5.1.68开始修复的,因此之前的包显然无法正常运行

因此,在将mysql客户端包更新到最新版本后,问题得到了解决