gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 14:55:13 27 4
gpt4 key购买 nike

我已经为 SSL 安装了一个 MySQL 服务器 v5.5.41,我正试图远程连接它。我已经创建了 SSL 证书、 key ,创建了一个用户并授予了这样的权限:

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 文件和用户/权限的过程。我所做的一切都完全相同,但是当我尝试连接时,我得到:

ERROR 1045 (28000): Access denied for user 'testuser'@'xxx.xxx.xxx.xxx' (using password: YES)

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

我唯一能想到的不同之处在于,当我创建客户端证书时,我不知道要为通用名称输入什么。在另一种情况下,它正在工作,那台机器是一个网络服务器,所以我使用的通用名称是域。对于我的开发机器,我只是使用从运行 hostname 命令得到的 Common Name。如果这是问题所在,通用名称应该是什么?

最佳答案

问题的原因是因为我不小心放了这几行:

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

...在我的本地开发机器上的 [mysqld_safe] 部分而不是 my.cnf 中的 [client] 部分,所以这里没有固有的 MySQL 或 SSL 问题(尽管如果我没有写下这个问题,我可能要花更长的时间才能发现)。

关于mysql - 拒绝访问使用 SSL 的 MySQL 远程连接尝试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30059456/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com