将SSL与MySql集成

时间:2013-03-12 12:20:43

标签: mysql ssl access-denied

我正在尝试通过引用thisssl设置mysql
我能完成前3个步骤,但遇到第4个问题,如下:

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

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

我尝试使用mysql -ussluser -pssluser连接到mysql,但它显示:访问被拒绝用户'ssluser'@'localhost'(使用密码:是)

当我已执行 GRANT 语句时,如何说拒绝访问

请注意我在使用 GRANT 创建之前执行了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

我几天都在尝试但却一无所获。任何帮助表示赞赏。

EDIT1

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

have_openssl    DISABLED
have_ssl        DISABLED

当我使用此SHOW STATUS LIKE 'Ssl_cipher';时,我得到了

Ssl_cipher  _________

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

1 个答案:

答案 0 :(得分:0)

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

  

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

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

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

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