首頁  >  文章  >  資料庫  >  為MySQL客戶端啟用TLS

為MySQL客戶端啟用TLS

王林
王林轉載
2023-08-23 14:07:401701瀏覽

為MySQL客戶端啟用TLS

TLS也被稱為SSL(安全通訊端層)。它是指傳輸層安全性。

當MySQL客戶端和伺服器之間存在未加密的連線時,可以存取網路的人可以觀察所有的流量並檢查在客戶端和伺服器之間發送或接收的資料。當用戶希望以安全的方式在網路上傳輸訊息時,不接受未加密的連線。

為了讓任何類型的資料變得不可讀,必須使用加密。加密演算法通常包含安全元素,有助於抵抗許多已知攻擊,其中一些包括更改加密訊息的順序或重播資料兩次。 MySQL支援在客戶端和伺服器之間發生的加密連接,它們都使用TLS協定。但是MySQL不使用SSL協定進行加密連接,因為加密弱。

TLS使用加密演算法來確保在公共網路上接收的資料是可信任的資料。它有許多方法來檢測資料的變更、遺失或重播。 TLS也使用了具有X.509標準的身份驗證演算法。

啟用TLS的步驟

MySQL依連線進行加密。給定使用者的加密可以是可選的或強制的。這使得用戶可以根據應用程式的要求選擇加密或未加密的連接。

讓我們了解如何為MySQL客戶端啟用TLS:

  • 在啟動伺服器時,必須在設定檔中指定ssl-cert和ssl-key參數。
  • 憑證或金鑰是使用OpenSSL簽署和產生的。
  • 也可以使用MySQL中的mysql_ssl_rsa_setup工具產生此金鑰:
  • mysql_ssl_rsa_setup --datadir=./certs
    如果參數正確,將傳遞一個安全連線作為輸出,該連線在啟動時啟用。
  • 重新載入憑證、金鑰和CA- 在伺服器實例上執行ALTER INSTANCE RELOAD TLS語句。這確保了伺服器實例無需重新載入。
  • 在成功執行已建立的連線之後,新載入的憑證、金鑰和CA生效。
  • 設定MySQL客戶端使用加密連線- 預設嘗試建立加密連線。如果伺服器不支援加密連接,則自動返回非加密連接。
  • 可以使用--ssl-mode參數來變更客戶端的連線行為:
    --ssl-mode=REQUIRED- Tells that en encrypted connection is needed.

需要啟用驗證:如果未指定ssl-ca 參數,則預設為用戶端或伺服器不進行身份驗證。

  • 必須在伺服器中指定 ssl-cert 和 ssl-key 參數。
  • 在 MySQL 用戶端中指定 --ssl-ca 參數。
  • 在 MySQL 用戶端中指定 --ssl-mode 為 VERIFY_CA。
  • 伺服器設定的憑證(ssl-cert)由客戶端 --ssl-ca 參數指定的 CA 簽署。
  • 否則,身份驗證失敗。

要對來自伺服器的 MySQL 用戶端進行驗證:

  • #在伺服器中指定 ssl-cert、ssl-key 和 ssl-ca 參數。
  • 在客戶端指定 --ssl-cert 和 --ssl-key 參數。
  • 伺服器配置的憑證和用戶端配置的憑證由伺服器指定的 ssl-ca 簽署。
  • 伺服器到客戶端的身份驗證是可選的。如果用戶端在 TLS 握手期間未顯示其身分證明證書,則仍會建立 TLS 連線。
  • 檢查目前連線是否使用任何加密。
#

以上是為MySQL客戶端啟用TLS的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除