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

时间:2015-07-26 00:57:46

标签: mysql mediawiki

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

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

如果我将一个ssl用户添加到db,我也可以从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)

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

是的,我意识到你是正确的,从命令行上的mysql客户端连接到db并使用mediawiki没有根本区别。

我确实在我测试的网络服务器上为my.cnf中的客户端配置了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页面。我已将所有Web服务器还原到负载平衡池。 wiki网站仍然很棒!

感谢您的投入! 添

相关问题