共用方式為


傳輸層安全性(TLS)在 Azure Database for PostgreSQL 中

簡介

Azure Database for PostgreSQL 要求所有用戶端連線必須使用 TLS,這是一種業界標準協定,能加密資料庫伺服器與用戶端應用程式之間的通訊。 TLS 取代了舊有的 SSL 協定,僅 TLS 版本 1.2 和 1.3 被認可為安全。 TLS 安全的完整性建立在三大支柱之上:

  • 只使用 TLS 版本 1.2 或 1.3。
  • 客戶端驗證由證書機構(CA)在由受信任根 CA 開始的 CA 鏈中所頒發的伺服器 TLS 證書。
  • 在伺服器與客戶端之間協商一套安全的密碼套件。

受信任的根憑證與憑證更新

這很重要

我們已開始為 Azure Database for PostgreSQL 進行 TLS 憑證輪替 ,以更新新的中介 CA 憑證及其產生的憑證鏈。 根CA保持不變。

如果您的客戶端設定實作了 TLS 的推薦配置,則無需採取任何行動。

證書輪替時間表

  • Azure 地區(美國中西部、東亞及英國南部)於 2025 年 11 月 11 日開始 TLS 證書輪替。
  • 自 2026 年 1 月 19 日起,此證書輪替計畫將擴展至剩餘(中國除外)區域,包括 Azure 政府。
  • 2026年春節(農曆新年)後,中國各地區也將進行證書輪替,涉及其中一個根 CA 的變更。

Azure Database for PostgreSQL 使用的根 CA

根憑證授權中心是憑證鏈中的頂層權威機構。 Azure Database for PostgreSQL 目前使用由以下根 CA 錨定的 ICA 發出的雙重簽署憑證:

中國地區目前使用以下 CA:

關於中級 CA

Azure Database for PostgreSQL 使用中介 CA(ICA)來發出伺服器憑證。 Microsoft 會定期輪換這些 ICA 及其發出的伺服器憑證以維護安全性。 這些輪調是例行公事,且不會事先公告。

目前的中級CA DigiCert Global Root CA 輪替(見 證書輪替)自2025年11月開始,預計將於2026年第一季完成,中級CA的替換如下。 如果你 遵循了建議的做法,那麼這項改變就不需要改變你的環境。

舊證書授權機構鏈

此資料僅供參考。 不要在你信任的根目錄中使用中間的 CA 或伺服器憑證。

  • DigiCert Global Root G2
    • Microsoft Azure RSA TLS Issuing CA 03 / 04 / 07 / 08
      • 伺服器憑證

新 CA 憑證鏈

此資料僅供參考。 不要在你信任的根目錄中使用中間的 CA 或伺服器憑證。

  • DigiCert Global Root G2
    • Microsoft TLS RSA Root G2
      • Microsoft TLS G2 RSA CA OCSP 02 / 04 / 06 / 08 / 10 / 12 / 14 / 16
        • 伺服器憑證

讀取副本

Root CA 從 DigiCert Global Root CA 遷移到 DigiCert Global Root G2 並非所有地區都完成。 因此,新建立的讀取副本有可能使用比主伺服器更新版本的根 CA 憑證。 因此,你應該將 DigiCert Global Root CA 加入讀取副本的信任儲存庫。

憑證鏈結

憑證鏈是由受信任的憑證授權機構(CA)所發行的階層式憑證序列,從根憑證授權機構開始,發出中繼憑證授權機構(ICA)的憑證。 ICA可能會為下級ICA發行證書。 鏈中最低的 ICA 會發行個別伺服器憑證。 信任鏈是透過驗證鏈中每張憑證直到根 CA 憑證來建立的。

減少連接故障

採用推薦的 TLS 配置,有助於降低因憑證輪替或中介 CA 變更而導致連線失敗的風險。 具體來說,避免信任中介CA或個別伺服器憑證,因為這些做法在Microsoft更新憑證鏈時可能導致意外連線問題。

這很重要

根憑證憑證的變更會提前公告,以協助你準備客戶端應用程式;然而,伺服器憑證的輪替及中介 CA 的變更是例行的,因此不會公告。

謹慎

使用 不支援的(用戶端)設定會導致 意外的連線失敗。

最佳配置

  • 透過將伺服器參數設 ssl_min_protocol_versionTLSv1.3來強制執行最新且最安全的 TLS 版本。
  • 用於 sslmode=verify-all PostgreSQL 連線以確保完整的憑證與主機名稱驗證。 根據你與私有端的 DNS 設定或 VNET 整合, verify-all 可能無法實現;因此你可以改用 verify-ca
  • 務必在 你信任的根目錄庫中維護完整的 Azure 根憑證

良好配置

  • 將伺服器參數設 ssl_min_protocol_versionTLSv1.3。 如果你必須支援 TLS 1.2,就不要設定最小版本。
  • 使用 sslmode=verify-allsslmode=verify-ca 用於 PostgreSQL 連線以確保完整或部分憑證驗證。
  • 確保受信任的根儲存庫包含目前 Azure 資料庫用於 PostgreSQL 的根 CA 憑證:

我們強烈建議不要採用以下配置:

  • 完全停用 TLS,方法是設定 require_secure_transport 為 , OFF 並將客戶端設定為 sslmode=disable
  • 為防止中間人攻擊,應避免用戶端 sslmode 設定 disableallowpreferrequire

不支援配置; 請勿 使用

Azure PostgreSQL 不會公告關於中間 CA 變更或個別伺服器憑證輪替的變更;因此,以下配置在使用 sslmode 設定 verify-caverify-all時不被支援:

  • 你可以在信任的儲存庫中使用中間的 CA 憑證。
  • 你可以使用憑證釘釘,例如在你的信任儲存庫中使用個別伺服器憑證。

謹慎

每當 Microsoft 更改憑證鏈的中介 CA 或輪換伺服器憑證時,你的應用程式就會無預警地無法連接到資料庫伺服器。

憑證釘選問題

備註

如果你沒有在客戶端應用程式的連接字串中使用 sslmode=verify-full 或 sslmode=verify-ca 設定,那麼憑證輪替不會影響你。 因此,您不需要遵循本節中的步驟。

千萬不要在應用程式中使用憑證鎖定,因為這會影響到憑證輪替功能,例如目前中介 CA 的憑證變更。 如果您不知道「憑證鎖定」是什麼,那麼您很可能沒有使用它。 要檢查 憑證鎖定

  • 建立你信任根目錄中的憑證清單。
  • 如果你在受信任的根存儲中有中間的 CA 憑證或個別的 PostgreSQL 伺服器憑證,那麼你就是在使用憑證釘選。
  • 要移除憑證釘選,請從你受信任的根儲存庫移除所有憑證,並新增 推薦的根 CA 憑證

如果你在完成這些步驟後仍因中間憑證而遇到問題,請聯絡 Microsoft 客服。 在標題中包含「ICA Rotation 2026」。

TLS 的其他考量

不安全和安全的 TLS 版本

全球數個政府實體會維護 TLS 關於網路安全性的指導方針。 在美國,這些組織包括衛生及公共服務部和國家標準暨技術研究院。 TLS 提供的安全性層級受到 TLS 通訊協定版本和所支援的加密套件影響最大。

Azure Database for PostgreSQL 支援 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 更快且更安全。

雖然我們不建議這麼做,但如果需要,你可以關閉用于連接至 Azure Database for PostgreSQL 的 TLS。 您可以將 require_secure_transport 伺服器參數更新為 OFF

這很重要

我們強烈建議您使用最新版本的 TLS 1.3 來加密您的資料庫連線。 您可以透過將伺服器參數設為ssl_min_protocol_version 來指定最低的 TLS 版本為TLSv1.3。 不要設定 ssl_max_protocol_version 伺服器參數。

加密套件

密碼套件是一組包含密碼、金鑰交換演算法和雜湊演算法的演算法。 它們會與 TLS 憑證及 TLS 版本一起使用,建立安全的 TLS 連線。 大多數 TLS 用戶端與伺服器支援多個密碼套件,有時甚至支援多個 TLS 版本。 在建立連線時,客戶端與伺服器 會透過握手協商 TLS 版本與密碼套件以供使用。 在這次握手過程中,會發生以下情況:

  • 客戶端會寄來一份可接受的密碼套件清單。
  • 伺服器會從列表中選擇最佳(依其定義)的密碼套件,並通知用戶端該選擇。

Azure Database for PostgreSQL 中沒有的 TLS 功能

目前,Azure Database for PostgreSQL 尚未實作以下 TLS 功能:

  • 基於 TLS 憑證的客户端身份验证,通過 TLS 與相互認證(mTLS)。
  • 自訂伺服器憑證(自備 TLS 憑證)。