MySQL SSL:SSL_CTX_set_default_verify_paths 失败

MySQL SSL:SSL_CTX_set_default_verify_paths 失败

我已经尝试了几天让 SSL 与 MySQL 一起工作。

这是我当前的设置:

MySQL 5.7.17-0ubuntu0.16.04.1

这是我启动 MySQL 服务器时收到的错误

由于以下 SSL 库错误,无法设置 SSL:SSL_CTX_set_default_verify_paths 失败

配置文件:

sl-ca = /etc/mysql-ssl/ca-cert.pem
ssl-cert = /etc/mysql-ssl/server-cert.pem
ssl-key = /etc/mysql-ssl/server-key.pem
ssl

我读这个帖子Chown文件,检查是否SELinux已启用(未安装)

我也运行了这些命令并得到了以下响应:

sudo -u mysql cat /etc/mysql-ssl/ca-cert.pem
-----BEGIN CERTIFICATE-----

sudo -u mysql cat /etc/mysql-ssl/server-cert.pem
-----BEGIN CERTIFICATE-----

sudo -u mysql cat /etc/mysql-ssl/server-key.pem
-----BEGIN RSA PRIVATE KEY-----

此时,我不知道下一步该怎么做。有人能给我指明正确的方向吗?

答案1

  1. 使用有效的系统/服务账户来管理你的数据库 (mysql)
  2. 将所有者设置为此数据库服务账户(mysql)
  3. 检查路径有效性
  4. 检查 openssl 证书
  5. 设置正确且有用的访问权限(请注意 0660,因为文件不可执行)
  6. 检查 selinux 或 apparmor 设置!它们可以阻止访问!

下面应该显示文件信息并设置正确的用户和 RW 权限以 root 身份运行或添加须藤一切的开始:

echo # show all entries of my.cnf (should 4 without # also wrong config settings)
cat /etc/mysql/my.cnf | grep ssl;
echo # Folder checkup (should list your PEM-Files)
ls -al /etc/mysql-ssl/;
echo # set all PEM-Files to user mysql
chown -R mysql:root /etc/mysql-ssl/*.pem
echo # set all PEM-Files to read-only from User (oder or use 660 )
chmod -R 600 /etc/mysql-ssl/*.pem
echo # restart mariaDB wait 5 secounds and show SSL errors
service mysql restart; sleep 5; service mysql status | grep SSL_CTX_set_default_verify_paths

我在我的 Ubuntu 服务器上创建了一个单独的组 (ssl-certs),将 mysql 添加到该组并相应地设置所有权限 (两个文件夹 - 0750 /文件 - 0640)。如果您想确保 mysql 可以访问文件,您可以su进入 mysql 并进行检查 (以 root 身份)。

su --shell=/bin/bash mysql
ls -la /path/cert/is/

不要忘记检查所有路径:CA、证书、私钥。

答案2

sl-ca = /etc/mysql-ssl/ca-cert.pem 应该 ssl-ca = /etc/mysql-ssl/ca-cert.pem

答案3

希望这对其他人有所帮助,将所有文件放到磁盘上并设置所有正确的权限后,我需要重新启动 apache。

答案4

对于可能遇到此问题的其他任何人。我将文件移至 MySQL 文件夹,将所有者设置为root并将权限设置为 777。

相关内容