繁体   English   中英

使用SSL拒绝对MySQL远程连接尝试的访问

[英]Access denied to MySQL remote connection attempt using SSL

我已经为SSL设置了MySQL服务器v5.5.41,并且打算尝试远程连接它。 我创建了SSL证书,密钥,创建了用户并授予了如下特权:

GRANT SELECT ON mydb.* TO 'myuser'@'xxx.xxx.xxx.xxx' require x509;

我已经更新了服务器上的my.cnf文件,如下所示:

ssl-ca   = /etc/mysql/certs/ca.pem
ssl-cert = /etc/mysql/certs/server-cert.pem
ssl-key  = /etc/mysql/certs/server-key.pem

我对客户端pem文件(和ca.pem )进行了相同的操作,将它们添加到my.cnf(在“ client部分下)。 我还更新了(Linux) /etc/apparmor.d/usr.sbin.mysqld因为我将pem文件放在我创建的新目录( certs )中。

一切正常! 除非重复我为本地开发计算机创建客户端pem文件和用户/特权的过程。 我所做的一切都完全一样,但是当我尝试连接时,我得到:

错误1045(28000):用户'testuser'@'xxx.xxx.xxx.xxx'的访问被拒绝(使用密码:是)

我已经在mysql服务器上创建了testuser并以与以前完全相同的方式授予了特权(通过查询数据库来验证)。 客户端pems和ca.pem在包装盒上,并且cnf文件已更新。 我已经重启了MySQL。 我用来连接服务器的密码绝对正确。

我唯一能想到的是与众不同的是,当我创建客户端证书时,我不知道在通用名称中输入什么内容。 在另一种情况下,它在工作的地方是一台Web服务器,因此我使用的公用名是域。 对于我的开发机器,我只是使用从运行hostname命令获得的通用名称得到的结果。 如果这是问题所在,则通用名称应该是什么?

出现此问题的原因是因为我不小心放置了以下行:

ssl-cert = /etc/mysql/certs/client-cert.pem
ssl-key  = /etc/mysql/certs/client-key.pem

...在我的本地开发计算机上的[mysqld_safe]部分而不是my.cnf中的[client]部分下,因此这里没有固有的MySQL或SSL问题(尽管如果我没有写这个问题,它可能已经采取了我发现它的时间更长了。

暂无
暂无

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

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