mysql - 将 SSL 与 MySql 集成

标签 mysql ssl access-denied

我正在尝试通过引用 thismysql 设置 ssl .
我能够完成前 3 个步骤,但在第 4 个步骤中遇到问题,如下所示:

GRANT ALL PRIVILEGES ON *.* TO 'ssluser'@'localhost' IDENTIFIED BY 'ssluser' REQUIRE SSL;

当我尝试运行 mysql -ussluser -pssluser -P3430 --ssl-key= 时执行此语句后,它显示以下错误:无法连接到 MySql 服务器 '本地主机' (10061)

我尝试使用 mysql -ussluser -pssluser 连接到 mysql,但它显示:Access denied for user 'ssluser'@'localhost' (using password: YES)

当我已经执行了 GRANT 语句时,它怎么会说 Access Denied

请注意 我在 之前 使用 GRANT atetement 执行了 mysql -ussluser -pssluser 并且我能够连接到 mysql。我在此时执行 mysql> CHANGE MASTER TO MASTER_SSL=1;(应该启用 SSL???)。

此外,如果我尝试 SHOW GRANTS FOR 'ssluser'@'localhost';
我明白了

GRANT ALL PRIVILEGES ON *.* TO \'ssluser\'@\'localhost\' IDENTIFIED BY PASSWORD \'*C56A6573BEE146CB8243543295FD80ADCE588EFF\' REQUIRE SSL WITH GRANT OPTION

我已经尝试了几天,但一无所获。任何帮助表示赞赏。

编辑1

当我使用 show global variables like 'have_%ssl'; 我得到

have_openssl    DISABLED
have_ssl        DISABLED

当我使用这个 SHOW STATUS LIKE 'Ssl_cipher'; 我得到

Ssl_cipher  _________

此外,我还创建了所有经过认证的服务器和客户端,并将它们放在 mysql server 根目录下的 certs 目录中。

最佳答案

您没有提供有关服务器或客户端操作系统的任何信息,也没有提供可执行文件的来源,也没有提供 DBMS 的配置方式。

mysql -ussluser -pssluser -P3430 --ssl-key=

IIRC,当您设置用户帐户以提供用于身份验证的客户端证书时,将使用 ssl-key 选项 (GRANT....REQUIRE X509;)。在这种情况下,您需要给它一个客户端证书文件作为参数。

但您只是说它应该使用 SSL - 即客户端出于 SSL 目的是匿名的。然而,客户端仍然需要验证服务器——因此 mysql 应该以 --ssl-ca=ca-cert.pem 启动。或 --ssl-capath=directory_name。

您还需要确保服务器已配置为支持 SSL - ini 文件或启动脚本应包含对其将要使用的证书以及处理 SSL 连接的端口的引用。此外,必须将 SSL 支持编译到二进制文件中,并且任何相关的共享对象文件都可用。如果配置显示 SSL 但 DBMS 不能执行 SSL,那么您应该从服务器日志中得到一些指示。

关于mysql - 将 SSL 与 MySql 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15361044/

相关文章:

django - 拒绝访问 Django 应用程序中的 Windows 证书存储

c# - 从 Azure Function 中 Ping 服务器

mysql - 如何获取具有特定值的下一条记录,然后返回一条记录以从日志中计算 session 持续时间?

mysql - 如何将一列数据显示为固定值,而另一列正常显示,两列来自同一列数据?数据库

mysql - 考虑到数据库规范化,我的数据库关系模型是否正确?

iis-7 - 用于具有单个 IP 的多个站点的 IIS 7 SSL

mysql - 关于 SELECT 的 SQL 语法

ssl - 将请求从 https 代理到 http 是否安全?

eclipse - 通过 SSL 的 JBoss 管理

来自不同域的 url 的窗口调整大小时,javascript 访问被拒绝