mysql - 在 mariaDB 中设置用户要求 SSL 不会强制连接使用证书

我的本地主机在 Win64 上运行 MariaDB 10.6.7。

我试图在连接到 MariaDB 时强制 SSL。我使用 MySQL Workbench 8.0 测试连接。

要启用 SSL,我执行了以下操作:

  1. 我生成自签名证书,然后在 my.ini 中设置以下内容:
[mysqld]
datadir=C:/xampp/MariaDB 10.6/data

port=3306

innodb_buffer_pool_size=1009M

ssl-ca=C:/xampp/xampp/certs/mysql/ca-cert.pem

ssl-cert=C:/xampp/xampp/certs/mysql/server-cert.pem

ssl-key=C:/xampp/xampp/certs/mysql/server-key.pem

[client]

port=3306

plugin-dir=C:/Program Files/MariaDB 10.6/lib/plugin

ssl-ca=C:/xampp/xampp/certs/mysql/ca-cert.pem

ssl-cert=C:/xampp/xampp/certs/mysql/client-cert.pem

ssl-key=C:/xampp/xampp/certs/mysql/client-key.pem
  1. 为了强制 SSL,我将 MariaDB 中的用户设置为需要 SSL。

不幸的是,通过这种配置,我仍然可以在不使用任何证书的情况下连接到 MySQL。如何强制 MariaDB 强制 SSL 或失败?

我的第二个问题,我怀疑我的配置实际上是为了使用 Require X509 进行设置。是这样吗?如果是,我如何将其设置为仅使用 Require SSL?

最后,在 my.ini 中设置证书,阻止我通过常规方式连接到 mysql,即:mysql -u root。我收到以下错误:

ERROR 2026 (HY000): SSL connection error: An unknown error occurred while processing 
 the certificate. Error 0x80090327(SEC_E_CERT_UNKNOWN).

我尝试使用以下命令 mysql --ssl-ca=[directory]\client-cert.pem -u root,但没有成功。我得到了和上面一样的错误。任何想法?

如果您有参考页面或任何形式的见解,将不胜感激。

谢谢。

回答1

创建用户时,需要添加require参数,可以是x509或者ssl。

举个例子

创建由 'root' 标识的用户 itpuxs2@'%' 需要 x509;

创建由 'root' 标识的用户 itpuxs3@'%' require ssl;

回答2

根据我在 Win64 中的测试,“需要 SSL”不需要 [client] 下的 ssl-ca、ssl-cert、ssl-key。这个设置也是我无法使用“mysql -u root”登录的原因。

我使用 MySQL Workbench 来测试我与 MariaDB 的连接。根据我的测试,即使我没有提供任何证书,只要服务器有 SSL 的证书,那么连接就会被加密(需要 SSL)。话虽如此,我确实尝试提供一个 ca-cert.pem,但它不起作用。从我在谷歌的研究来看,这似乎是由于 MariaDB 中使用的 SSL 库。 SSL 库对于不同的发行版可能不同。

至于 X509,我能够让它在 Linux 中运行。我这样做了一次并且没有做进一步的测试,因为我现在在 Windows 中工作。

相似文章

随机推荐

最新文章