无法使用 ssl 数据库用户访问 mediawiki 站点

can't access mediawiki site with ssl database user

我刚刚在我的媒体 wiki 设置中添加了一个远程数据库。我可以使用普通数据库用户从命令行访问数据库,并在配置中使用该信息,wiki 站点显示在浏览器中并正常工作。

但是有些数据是敏感的,所以我需要添加一个ssl用户来访问数据库。

如果我给数据库添加一个ssl用户,我也可以从web服务器的命令行访问它没问题:

[root@ops:~] #mysql -uadmin_ssl -p -h db.example.com -e "SHOW DATABASES"
Enter password:
+--------------------+
| Database           |
+--------------------+
| certs              |
| information_schema |
| jfwiki             |
| mysql              |
| performance_schema |
+--------------------+

但是在 LocalSettings.php 中使用 ssl 用户后,我从浏览器收到了这样的响应:

Sorry! This site is experiencing technical difficulties.

Try waiting a few minutes and reloading.

(Cannot access the database: Access denied for user 'admin_ssl'@'ec2-xx-xx-xxx-xx.compute-1.amazonaws.com' (using password: YES) (db.example.com))

You can try searching via Google in the meantime.
Note that their indexes of our content may be out of date.

JF Wiki  WWW

这是用户授权在数据库中的样子:

MariaDB [(none)]> show grants for  'admin_ssl'@'ec2-xx-xx-xxx-xx.compute-1.amazonaws.com';
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for admin_ssl@ec2-xx-xx-xxx-xx.compute-1.amazonaws.com                                                                                                        |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'admin_ssl'@'ec2-xx-xx-xxx-xx.compute-1.amazonaws.com' IDENTIFIED BY PASSWORD '*somePasswordHash' REQUIRE SSL |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

我只是想知道我需要做什么才能完成这项工作!!欢迎所有建议。

从您的网络服务器通过命令行 MySQL 客户端连接和使用 MediaWiki 之间没有任何根本区别;如果一个有效而另一个无效,则您可能对它们进行了不同的配置。据推测,命令行客户端使用 ssl,因为它在 my.cnf 中启用,但您没有设置 $wgDBssl 或等效设置。

是的,我知道你是对的,从命令行上的 mysql 客户端连接到数据库和使用 mediawiki 没有根本区别。

我确实在 my.cnf 的 Web 服务器上为客户端配置了 ssl 我正在测试来自:

[client]
ssl-ca=/opt/mysql/ca.crt
ssl-cert=/opt/mysql/ops.example.com.crt
ssl-key=/opt/mysql/ops.example.com.key

这就是我能够使用 SSL 从 Web 服务器连接到数据库的原因。

我发现的问题是我不知道也不了解 $wgDBssl 设置。

我在这里读到:

Mediawiki $wgDBssl

LocalSettings.php 中的这些设置对我有用:

## Database settings
$wgLBFactoryConf['class'] = 'LBFactorySimple';
$wgDBservers = '';
$wgDBtype = "mysql";
$wgDBserver = "db.example.com";
$wgDBssl    =  1;
$wgDBname = "jfwiki";
$wgDBuser = "admin_ssl";
$wgDBpassword = "secret";

我现在可以在负载平衡数据库 VIP 上使用 SSL 加载 wiki 页面。并且我已经将所有的网络服务器恢复到负载均衡池中。而且 wiki 网站仍然运行良好!

感谢您的意见! 蒂姆