我想建立与远程 MariaDB 服务器的 SSL 连接。我按照这里的说明进行操作。我为服务器生成了证书,重新启动它,得到了这个:
+---------------------+-------------------------------------------------+
| Variable_name | Value |
+---------------------+-------------------------------------------------+
| have_openssl | YES |
| have_ssl | YES |
| ssl_ca | /var/packages/MariaDB10/etc/ssl/ca-cert.pem |
| ssl_capath | |
| ssl_cert | /var/packages/MariaDB10/etc/ssl/server-cert.pem |
| ssl_cipher | |
| ssl_crl | |
| ssl_crlpath | |
| ssl_key | /var/packages/MariaDB10/etc/ssl/server-key.pem |
| version_ssl_library | OpenSSL 1.0.2r-fips 26 Feb 2019 |
+---------------------+-------------------------------------------------+
我还生成了客户端证书。但是,为了确保我理解该过程,我一步一步进行,并没有安装它们。我首先将用户设置更改为REQUIRE SSL
. 然后
mysql --user=user --password=password
失败了
ERROR 1045 (28000): Access denied for user 'user'@'host' (using password: YES)
到目前为止,一切都很好。然而,
mysql --user=user --password=password --ssl
成功,即使我没有提供任何客户端证书。status
节目
SSL: Cipher in use is DHE-RSA-AES256-GCM-SHA384
如果我理解正确,这意味着连接确实使用了 SSL。这怎么可能,这是预期的行为吗?
我正在使用 MariaDB 10.3。
REQURE SSL只需要一个 TLS 连接。用于
REQUIRE X509
强制执行 TLS 客户端证书,或者更好的是,使用REQUIRE SUBJECT
或REQUIRE ISSUER
确保该证书与颁发的证书相同。