Mysql

即使我沒有在客戶端設置證書,狀態顯示 SSL 仍在使用中?

  • January 28, 2020

我想建立與遠端 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 SUBJECTREQUIRE ISSUER確保該證書與頒發的證書相同。

引用自:https://dba.stackexchange.com/questions/258364