我刚刚在我的媒体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)
我只是想知道我需要做些什么来完成这项工作!欢迎所有建议。
答案 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设置。
我在这里读到了这个:
这些是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网站仍然很棒!
感谢您的投入! 添