Mysql

未經驗證 CA 的 MySQL / MariaDB SSL 連接

  • September 11, 2017

我需要加密客戶端和伺服器之間的連接。

這是我伺服器中的配置

MariaDB [(none)]> show variables like "%ssl%";
+---------------------+----------------------------+
| Variable_name       | Value                      |
+---------------------+----------------------------+
| have_openssl        | YES                        |
| have_ssl            | DISABLED                   |
| ssl_ca              |                            |
| ssl_capath          |                            |
| ssl_cert            |                            |
| ssl_cipher          |                            |
| ssl_crl             |                            |
| ssl_crlpath         |                            |
| ssl_key             |                            |
| version_ssl_library | OpenSSL 1.0.1t  3 May 2016 |
+---------------------+----------------------------+

是否可以在不使用伺服器 CA (ssl_ca) 驗證客戶端證書的情況下使用 SSL 進行身份驗證?

是否可以在不使用伺服器 CA (ssl_ca) 驗證客戶端證書的情況下使用 SSL 進行身份驗證?

不,您需要創建 CA,生成證書生成請求 (CSR),然後從 CA 生成客戶端證書。連接的雙方都需要客戶端證書和 CA。

您可以為所有客戶端重複使用相同的客戶端證書。或者,在創建使用者時,您可以REQUIRE CN=用來強制使用者使用特定證書進行連接(這需要在生成客戶端證書時執行不同的步驟)。

  • 我建議也使用密碼進行身份驗證
  • 請注意您的 CA 的到期日期。更新 CA 或客戶端證書需要重新啟動 MySQL
  • 如果您需要輪換 CA,您的 ssl_ca 文件中可以有多個 CA,以留出過渡期。
  • 您的 CA 的 CN 不能與您的客戶端證書相同。如果你這樣做,你會試圖弄清楚你做錯了什麼。

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