我的本地主机在Win 64上运行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,即:下面是一个错误提示:
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,但没有成功。我得到了和上面一样的错误。你知道吗?
如果你有参考页或任何形式的见解,那将不胜感激。
- 谢谢-谢谢
2条答案
按热度按时间xkftehaa1#
创建用户时,需要添加require参数,可以是x509或ssl。
以...为例
创建由“root”标识用户itpuxs2 @' %'需要x509;
创建由“root”标识用户itpuxs3 @' %'需要ssl;
62lalag42#
从我在Win 64中的测试来看,[client]下的ssl-ca、ssl-cert、ssl-key对于“Require SSL”是不需要的。这些设置也是我无法使用“mysql -u root”登录的原因。
我使用MySQL Workbench测试了我到MariaDB的连接。从我的测试来看,即使我没有提供任何证书,只要服务器有SSL证书,那么连接就会被加密(需要SSL)。话虽如此,我确实试着提供一个ca-cert.pem,但它没有工作。从我在谷歌的研究,这似乎是由于MariaDB中使用的SSL库造成的。SSL库可能因不同的发行版而不同。
至于X509,我能够让它在Linux中工作。我做过一次,没有做进一步的测试,因为我目前在Windows中工作。