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

时间:2014-06-05 16:44:26

标签: mysql ssl

我在一台服务器上设置了mysql-server。我通过在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

我已按照http://dev.mysql.com/doc/refman/5.1/en/creating-ssl-certs.html

中的步骤生成了这些证书

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

mysql -uuser -p --ssl-ca=/etc/mysql/ca-cert.pem

现在我尝试从远程服务器执行相同的操作

mysql -uuser -hserver.asdf -p --ssl-ca=ca-cert.pem

,我收到以下错误:

ERROR 2026 (HY000): SSL connection error

我在哪里复制了我之前使用过的ca-cert.pem文件。但是,当我运行以下命令时,连接将在启用SSL的情况下建立:

mysql -uuser -hserver.asdf -p --ssl-cert=client-cert.pem --ssl-key=client-key.pem

根据我的理解,只有当我们希望服务器验证客户端并且实际上不需要时,mysql客户端命令中才需要--ssl-cert和--ssl-key参数。但是,当我使用这些参数时,为什么我可以连接呢?

更新

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

1 个答案:

答案 0 :(得分:0)

事实证明,在Percona-mysql的最新版本中,针对SSL的Percona-mysql包进行了一些重大更改。 percona-mysql包的所有旧版本都带有yaSSL支持,而更新的版本使用OpenSSL。

这样做是因为使用yaSSL构建的软件包显然会导致某些程序崩溃。有关此错误的更多详细信息,请访问:https://bugs.launchpad.net/percona-server/+bug/1104977

由于此问题已从5.1.68开始修复,显然之前的程序包无法正常运行。

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