无法使用 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 设置。
我在这里读到:
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 网站仍然运行良好!
感谢您的意见!
蒂姆
我刚刚在我的媒体 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 设置。
我在这里读到:
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 网站仍然运行良好!
感谢您的意见! 蒂姆