将ssl与mysql集成 - 拒绝访问

GAM*_*AMA 6 mysql ssl access-denied

我试图设置sslmysql参照.
我能完成前3个步骤,但遇到第4个问题如下:

GRANT ALL PRIVILEGES ON *.* TO 'ssluser'@'localhost' IDENTIFIED BY 'ssluser' REQUIRE SSL;
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)

然后我重启mysql服务器.

在我尝试运行时执行此语句后mysql -ussluser -pssluser -P3306 --ssl-key="C:\Program Files\MySQL\MySQL Server 5.5\certs\ca-cert.pem",
它显示以下错误:用户'ssluser'@'localhost'拒绝访问(使用密码:YES)
我在这里使用3306,因为它是我的默认端口.

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

注意

  • mysql -ussluser -pssluser 使用GRANT语句之前执行了,REQUIRE SSL并且我能够连接到mysql.

  • 如果我尝试SHOW GRANTS FOR 'ssluser'@'localhost';
    我得到

    GRANT ALL PRIVILEGES ON *.* TO \'ssluser\'@\'localhost\' IDENTIFIED BY PASSWORD \'*C56A6573BEE146CB8243543295FD80ADCE588EFF\' REQUIRE SSL WITH GRANT OPTION
    
    Run Code Online (Sandbox Code Playgroud)
  • 在执行GRANT语句之前,我能够通过ssluser连接到工作台.但现在它的访问被拒绝错误.

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

    have_openssl禁用has_ssl禁用

  • 当我用它时,SHOW STATUS LIKE 'Ssl_cipher';我得到了

    Ssl_cipher _________

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

我试了好几天但却一无所获.任何帮助赞赏.

我是第一次这样做.任何人都可以通过详细的程序指导我这样做吗?

Mat*_*vin 8

今天我正在努力解决类似的错误消息,这是我发现的.

  1. GRANT的"REQUIRE SSL"选项仅需要SSL进行连接,并且不需要提供客户端证书.
  2. mysql CLI不像我预期的那样处理SSL.例如,在MySQL 5.5上,该--ssl选项似乎并未真正启用SSL传输.
  3. 我必须添加选项--ssl-cipher=DHE-RSA-AES256-SHA:AES128-SHA以使mysql客户端真正使用SSL并允许客户端进行身份验证.

以下是我用于设置新用户的确切步骤:

CREATE USER 'ssl-user'@'%' identified by '<password>';
GRANT USAGE ON *.* TO 'ssl-user'@'%' identified by '<password>' REQUIRE SSL;
GRANT ALL PRIVILEGES ON `your-database`.* TO 'ssl-user'@'%';
Run Code Online (Sandbox Code Playgroud)