繁体   English   中英

来自远程服务器的MySQL SSL连接

[英]Mysql ssl connection from remote server

我在一台服务器上设置了一个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

我已经按照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 client命令中才需要--ssl-cert和--ssl-key参数。 但是为什么在使用这些参数时却可以连接,却为什么不可以呢?

UPDATE

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

事实证明,在最新版的Percona-mysql中,对Percona-mysql软件包和SSL进行了一些重大更改。 percona-mysql软件包的所有较早版本均提供yaSSL支持,而较新的版本均使用OpenSSL。

这样做是因为带有yaSSL的软件包显然用于导致某些程序崩溃。 有关此错误的更多详细信息,可以在这里找到: https : //bugs.launchpad.net/percona-server/+bug/1104977

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM