適用於 MySQL 的 Azure 資料庫 要求所有用戶端連線必須使用 TLS,這是一種業界標準協定,用來加密資料庫伺服器與用戶端應用程式之間的通訊。 TLS 取代了舊有的 SSL 協定,僅 TLS 版本 1.2 和 1.3 被認可為安全。 TLS 安全的完整性建立在三大支柱之上:
- 只使用 TLS 版本 1.2 或 1.3。
- 用戶端會驗證由憑證授權單位 (CA) 核發的伺服器 TLS 憑證,該憑證位於由受信任根 CA 起始的 CA 鏈結中。
- 在伺服器與客戶端之間協商一套安全的密碼套件。
適用於 MySQL 的 Azure 資料庫 彈性伺服器中的 TLS 組態
適用於 MySQL 的 Azure 資料庫 彈性伺服器支援透過安全套接字層(SSL)及傳輸層安全(TLS)加密,將您的客戶端應用程式連接到 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例。 TLS 為業界標準通訊協定,可確保資料庫伺服器與用戶端應用程式之間的網路連線經過加密,讓您遵守合規性需求。
適用於 MySQL 的 Azure 資料庫 彈性伺服器預設透過傳輸層安全(TLS 1.2)支援加密連線,並預設使用 TLS 1.0 和 TLS 1.1 拒絕所有入站連線。 你可以在彈性伺服器上設定並更改加密連線強制或 TLS 版本設定。
下表說明了您可以為彈性伺服器設定的不同 SSL 與 TLS 設定:
Important
根據移除 對 TLS 1.0 與 TLS 1.1 協議的支援,MySQL 計劃於 2024 年 9 月完全棄用 TLS 1.0 與 1.1。 然而,由於部分客戶發現依賴性,時間線被延長。
- 自 2025 年 8 月 31 日起,所有仍使用 TLS 1.0 或 1.1 的伺服器將開始強制升級。 在此日期之後,任何依賴 TLS 1.0 或 1.1 的連線都可能隨時停止運作。
為避免服務中斷,請盡快遷移至 TLS 1.2。
| Scenario | 伺服器參數設定 | Description |
|---|---|---|
| 關閉 TLS 強制執行 | require_secure_transport = OFF |
如果你的舊應用程式不支援加密連線,請關閉加密連線強制執行。 |
| 強制使用 TLS 版本 < 1.2(於 2024 年 9 月退役) |
require_secure_transport = ON 以及 tls_version = TLS 1.0 或 TLS 1.1 |
已無法取得! |
| 強制使用 TLS 版本為 1.2(預設設定) |
require_secure_transport = ON 與 tls_version = TLS 1.2 |
預設配置。 |
| 使用 TLS 版本 1.3 進行強制執行 |
require_secure_transport = ON 與 tls_version = TLS 1.3 |
推薦配置;僅支援 適用於 MySQL 的 Azure 資料庫 Flexible Server v8.0 及以上版本。 |
Note
TLS 密碼的變更不被支援。 符合 FIPS 標準的密碼套件預設強制執行,當 設定 tls_version 為 TLS 1.2 或 TLS 1.3時。
請複習 使用 SSL/TLS 連線 ,了解如何辨識 TLS 版本。
受信任的根憑證與憑證更新
Important
根憑證輪替排程:
- 中國地區根CA憑證從DigiCert全球根CA(G1)更新至DigiCert全球根G2的更新將自2026年3月9日起生效。
- 如果你的客戶端設定使用 TLS 的推薦配置,你就不需要採取任何行動。
適用於 MySQL 的 Azure 資料庫 使用的根憑證授權機構
根憑證授權中心是憑證鏈中的頂層權威機構。 適用於 MySQL 的 Azure 資料庫目前使用由 ICA 核發的雙重簽署憑證,該 ICA 由下列根 CA 錨定:
中國地區目前使用以下 CA:
- Microsoft RSA Root CA 2017
- DigiCert 全域根 CA
- 2026 年春節(農曆新年)後:DigiCert 全球根憑證 G2。 請先將新的根 CA 新增到您信任的根存放區,為此變更做好準備。
關於中繼 CA
適用於 MySQL 的 Azure 資料庫 使用中介 CA(ICA)來發行伺服器憑證。 Microsoft 會定期輪換這些 ICA 及其發出的伺服器憑證以維護安全性。 這些輪調是例行公事,不會事先公告。
目前的中介證書機構 DigiCert Global Root G2 輪替(見 證書輪替)自2025年11月開始,預計於2026年第一季完成。 此輪替會取代中繼 CA,如下所示。 如果你遵循 了建議的做法,就不需要對環境做任何改變。
舊證書授權機構鏈
此資料僅供參考。 不要在你信任的根目錄中使用中間的 CA 或伺服器憑證。
DigiCert Global Root G2Microsoft Azure RSA TLS Issuing CA 03 / 04 / 07 / 08- 伺服器憑證
新 CA 憑證鏈
此資料僅供參考。 不要在你信任的根目錄中使用中間的 CA 或伺服器憑證。
DigiCert Global Root G2Microsoft TLS RSA Root G2Microsoft TLS G2 RSA CA OCSP 02 / 04 / 06 / 08 / 10 / 12 / 14 / 16- 伺服器憑證
憑證鏈結
憑證鏈是由受信任的憑證授權機構(CA)所發行的階層式憑證序列,從根憑證授權機構開始,發出中繼憑證授權機構(ICA)的憑證。 ICA 可能會為其下屬的 ICA 核發憑證。 鏈中最低的 ICA 會發行個別伺服器憑證。 你透過驗證鏈中每張憑證直到根 CA 憑證,來建立信任鏈。
減少連線故障
使用推薦的 TLS 配置,以降低因憑證輪替或中介 CA 變更而導致連線失敗的風險。 具體來說,避免信任中間的 CA 或個別伺服器憑證,因為這些做法在 Microsoft 更新憑證鏈時可能導致意外連線問題。
Important
Microsoft 會提前宣布根憑證的變更,以協助你準備客戶端應用程式。 不過,伺服器憑證輪替和中介 CA 的變更是例行的,因此不會公告。
Caution
使用 不支援的(用戶端)設定 可能會導致意外的連線失敗。
TLS 推薦配置
最佳配置
- 透過設定
require_secure_transport = ON和tls_version = TLS 1.3強制執行最新、最安全的 TLS 版本。 - 請使用用戶端應用程式的完整驗證(設定因客戶端而異)。
- 務必在 你信任的根目錄庫中維護完整的 Azure 根憑證。
良好配置
- 集合
require_secure_transport = ON和tls_version = TLS 1.3。 如果你必須支援 TLS 1.2,請不要設定tls_version. - 使用用戶端應用程式的完整驗證(這因客戶而異)。
- 確保受信任的根儲存庫包含目前 Azure Database 用於 MySQL 的根憑證:
有支援,但不推薦
不要完全停用 TLS,方法是設定 require_secure_transport 為 OFF。
不支援配置;不要使用
Azure MySQL 不會公告關於中間 CA 變更或個別伺服器憑證輪替的變更。 因此,以下配置不被支援:
- 您在受信任存放區中使用中繼 CA 憑證。
- 您使用憑證釘選,例如在可信存放區中使用個別伺服器憑證。
Caution
每當 Microsoft 更改憑證鏈的中介 CA 或輪換伺服器憑證時,你的應用程式就會無預警地無法連接到資料庫伺服器。
TLS 的其他考量
不安全和安全的 TLS 版本
全球數個政府實體會維護 TLS 關於網路安全性的指導方針。 在美國,這些組織包括衛生及公共服務部和國家標準暨技術研究院。 TLS 提供的安全性層級受到 TLS 通訊協定版本和所支援的加密套件影響最大。
適用於 MySQL 的 Azure 資料庫 支援 TLS 版本 1.2 和 1.3。 在 RFC 8996 中,網際網路工程任務小組(IETF)明確表示不得使用 TLS 1.0 和 TLS 1.1。 這兩個通訊協定已在 2019 年底被取代。 所有使用早期不安全版本 TLS 協定(如 TLS 1.0 和 TLS 1.1)的入站連線,預設都會被拒絕。
IETF 於 2018 年 8 月在 RFC 8446 發布了 TLS 1.3 規範,而 TLS 1.3 是推薦版本,因為它比 TLS 1.2 更快且更安全。
雖然不建議這麼做,但如果需要,你可以關閉 適用於 MySQL 的 Azure 資料庫 連接的 TLS。 您可以將 require_secure_transport 伺服器參數更新為 OFF。
加密套件
密碼套件是一組包含密碼、金鑰交換演算法和雜湊演算法的演算法。 將它們與 TLS 憑證及 TLS 版本一起使用,以建立安全的 TLS 連線。 大多數 TLS 用戶端與伺服器支援多個密碼套件,有時甚至支援多個 TLS 版本。 在建立連線時,客戶端與伺服器 會透過握手協商 TLS 版本與密碼套件以供使用。 在這次握手過程中,會發生以下情況:
- 客戶端會寄來一份可接受的密碼套件清單。
- 伺服器會從列表中選擇最佳(依其定義)的密碼套件,並通知用戶端該選擇。
適用於 MySQL 的 Azure 資料庫 中沒有的 TLS 功能
目前,適用於 MySQL 的 Azure 資料庫 尚未實作以下 TLS 功能:
- 基於 TLS 憑證的客户端身份验证,通過 TLS 與相互認證(mTLS)。
- 自訂伺服器憑證(自備 TLS 憑證)。