我已按照以下指南在 CentOS 6.0 上的 MySQL 5.1.52 上启用了 SSL:http://www.madirish.net/node/244
我已正确遵循说明,但当我尝试从客户端服务器连接时遇到以下错误:
[root@mta mysql]# mysql -u ssluser -h 10.178.234.142 -p ssldb
Enter password:
ERROR 2026 (HY000): SSL connection error
我做了一些研究,发现你需要使用不同的通用名称。我意识到我第一次使用了相同的名称,所以我返回并重新执行了指南中的所有步骤,但仍然出现相同的错误。
我也尝试过使用以下方式登录服务器,但没有成功:
[root@mta mysql]# mysql --ssl --ssl-ca=/etc/ssl/mysql/client.cert -u ssluser -h 10.178.234.142 -p ssldb
Enter password:
ERROR 2026 (HY000): SSL connection error
[root@mta mysql]# mysql --ssl --ssl-ca=/dev/null -u ssluser -h 10.178.234.142 -p ssldb
Enter password:
ERROR 2026 (HY000): SSL connection error
答案1
看起来您指定的是客户端证书而不是 CA 证书。我假设您的证书存储在 /etc/ssl/mysql 中,并且您已创建 CA 证书、客户端证书和密钥。您需要指定 --ssl-cert=/etc/ssl/mysql/client.cert --ssl-ca=/etc/ssl/mysql/CA.cert --ssl-key=/etc/ssl/mysql/client-key
我还假设您已在 my.cnf 文件的 [mysqld] 部分中指定了服务器密钥和证书,并重新启动了服务器。您还可以在 my.cnf 文件的 [client] 部分中指定客户端密钥和证书,而不必在命令行中指定它们。
这是创建有效密钥和证书的良好指南: http://www.chriscalender.com/?p=448