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

Set user to require SSL in mariaDB does not force connection to use certificate

我的本地主机是 运行 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 或 FAIL?

我的第二个问题,我怀疑我的配置实际上是使用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,但没有成功。我得到了与上面相同的错误。有什么想法吗?

如果您有参考页或任何类型的见解,我们将不胜感激。

谢谢。

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

为例

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

创建用户 itpuxs3@'%' 由 'root' 识别需要 ssl;

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

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

至于 X509,我能够在 Linux 中使用它。我做了一次,没有做进一步的测试,因为我目前在 windows 工作。