我正在尝试通过引用 this 为 mysql
设置 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/