瞭解 Azure SQL Database & SQL 受控執行個體的根 CA 變更

Azure SQL Database & SQL 受控執行個體將針對以 SSL 啟用的用戶端應用程式/驅動程式,變更其根憑證,藉以建立安全的 TDS 連線。 目前根憑證的到期日設為 2020 年 10 月 26 日,作為標準維護和安全性最佳做法的一部份。 本文提供更多詳細資料,其中包含即將推出的變更、受影響的資源,以及維持應用程式與資料庫伺服器之間連線能力的所需步驟。

即將發生什麼更新?

憑證授權單位 (CA) 瀏覽器論壇最近發行的報表顯示,多個由 CA 廠商發行的憑證不符合規範。

根據產業的合規性需求,CA 廠商會針對不符合規範的 CA,開始撤銷其 CA 憑證、要求伺服器使用符合規範的 CA 憑證,並由這些合規範的 CA 憑證進行簽署。 由於 Azure SQL Database & SQL 受控執行個體目前使用其中一個不符合規範的憑證,而用戶端應用程式會使用該憑證來驗證其 SSL 連線,因此我們必須採取適當動作 (如下所述),以將 Azure SQL 伺服器的潛在影響最小化。

新憑證將於 2020 年 10 月 26 日起可供使用。 如果您在從 SQL 用戶端連線時使用伺服器憑證的完整驗證, (TrustServerCertificate=false) ,您必須確定 SQL 用戶端能夠在 2020 年 10 月 26 日之前驗證新的根憑證。

如何知道我的應用程式可能會受到影響?

所有使用 SSL/TLS 並驗證根憑證的應用程式都必須更新根憑證,才能連接到 Azure SQL Database & SQL 受控執行個體。

如果您目前未使用 SSL/TLS,則應用程式可用性不會受到影響。 您可以藉由查看連接字串,確認用戶端應用程式是否嘗試驗證根憑證。 如果 TrustServerCertificate 明確設定為 true,則不會受到影響。

如果您的用戶端驅動程式利用 OS 憑證存放區 (如同大部分的驅動程式),且您的 OS 會定期進行維護,則這項變更可能不會造成影響,因為您應該可在受信任的根憑證存放區中,使用要切換的根憑證。 檢查 Baltimore CyberDigiCert GlobalRoot G2,並驗證其是否存在。

如果您的用戶端驅動程式利用本機檔案憑證存放區,以避免憑證遭到非預期撤銷時,中斷應用程式可用性,或要更新已撤銷的憑證,請參閱我需要怎麼做才能維持連線能力 一節。

我需要怎麼做才能維持連線能力

若要避免憑證遭到非預期撤銷時,中斷應用程式可用性,或要更新已撤銷的憑證,請遵循下列步驟:

這會造成什麼影響?

如果您要驗證此處所述的伺服器憑證,則應用程式可能會無法連線到資料庫並中斷其可用性。 視您的應用程式而定,您可能會收到各種不同的錯誤訊息,包括但不限於:

  • 不正確憑證/憑證已撤銷
  • 連線逾時
  • 錯誤 (若適用)

常見問題集

如果我不是使用 SSL/TLS,還需要更新根 CA 嗎?

如果您不是使用 SSL/TLS,則不需要進行與此變更相關的動作。 由於我們計劃在不久後強制執行 TLS,因此仍建議您應設定計劃,以準備開始使用最新版的 TLS。

如果我未在 2020 年 10 月 26 日之前更新根憑證,會發生什麼事?

如果您未在 2020 年 11 月 30 日之前更新根憑證,則透過 SSL/TLS 連線的應用程式以及根憑證的驗證,將無法與 Azure SQL Database & SQL 受控執行個體通訊,且應用程式會遇到 Azure SQL Database & SQL 受控執行個體的連線問題。

我是否需要規劃此變更的維護停機時間?

否。 由於此處的變更僅限於連線到伺服器的用戶端,因此這項變更不需要維護停機時間。

如果我無法在 2020 年 10 月 26 日之前取得此變更的排程停機時間,該怎麼辦?

由於用來連線到伺服器的用戶端必須更新憑證資訊,如此處的修正程式一節所述,在此情況下,伺服器不需要停機時間。

如果我在 2020 年 11 月 30 日之後建立新的伺服器,將會受到影響嗎?

針對在 2020 年 10 月 26 日之後建立的伺服器,您可以使用新發行的憑證,讓您的應用程式使用 SSL 進行連線。

Microsoft 更新其憑證的頻率,或者到期原則為何?

Azure SQL Database & SQL 受控執行個體所使用的憑證,是由受信任的憑證授權單位 (CA) 所提供。 因此,Azure SQL Database & SQL 受控執行個體的憑證支援會繫結至這些 CA 憑證的支援。 不過,在此種情況下,這些預先定義的憑證可能會出現非預期的錯誤,而這些錯誤應在最初進行修正。

如果我使用讀取複本,是否只需要在主要伺服器,或在所有讀取複本上執行此更新?

由於這項更新是用戶端的變更內容,如果使用用戶端來讀取複本伺服器的資料,則也必須套用這些用戶端的變更內容。

我們是否具有伺服器端查詢功能,以確認是否正在使用 SSL?

此為用戶端設定,伺服器端不提供資訊。

如果我有其他問題,該怎麼辦?

如果您具有支援方案,且需要技術協助,請建立 Azure 支援要求,請參閱如何建立 Azure 支援要求