Mysql
即使我沒有在客戶端設置證書,狀態顯示 SSL 仍在使用中?
我想建立與遠端 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
確保該證書與頒發的證書相同。