共用方式為


瞭解 Azure SQL 資料庫 和 SQL 受管理執行個體 根 CA 變更中的變更

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

即將發生什麼更新?

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

根據產業的合規性需求,CA 廠商已開始撤銷不合規 CA 的 CA 憑證,要求伺服器使用合規 CA 所發行的憑證,並以這些合規 CA 的憑證來簽署。 由於 Azure SQL 資料庫 和 SQL 受管理執行個體 目前使用其中一個不符合規範的憑證,用戶端應用程式會使用這些憑證來驗證其 TLS 連線,因此我們必須確保已採取適當的動作(如下所述),以將對您 Azure SQL 伺服器的潛在影響降到最低。

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

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

所有使用 SSL/TLS 並確認跟證書的應用程式都必須更新跟證書,才能連線到 Azure SQL 資料庫 和 Azure SQL 受控執行個體。

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

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

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

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

若要避免應用程式因憑證意外撤銷而中斷可用性,或更新已撤銷的憑證,請遵循下列步驟:

這會造成什麼影響?

如果您如這裡所述驗證伺服器憑證,應用程式的可用性可能會中斷,因為無法連線到資料庫。 視您的應用程式而定,您可以接收各種錯誤訊息,包括但不限於:

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

常見問題集

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

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

如果我在 2020 年 10 月 26 日之前未更新跟證書,會發生什麼情況?

如果您未在 2020 年 11 月 30 日之前更新跟證書,則透過 SSL/TLS 連線並驗證跟證書的應用程式將無法與 Azure SQL 資料庫 和 SQL 受管理執行個體 通訊,而且應用程式會遇到 Azure SQL 資料庫 和 SQL 受管理執行個體 的連線問題。

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

否。 由於變更只會在用戶端連線到伺服器,因此此變更不需要在此維護停機時間。

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

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

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

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

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

Azure SQL 資料庫 和 SQL 受管理執行個體 所使用的這些憑證是由受信任的證書頒發機構單位 (CA) 提供。 因此,Azure SQL 資料庫 和 SQL 受管理執行個體 上的這些憑證支援會系結至 CA 支援這些憑證。 不過,在此種情況下,這些預先定義的憑證可能會出現非預期的錯誤,而這些錯誤應在最初進行修正。

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

由於此更新是客戶端變更,因此,如果用戶端用來從複本伺服器讀取數據,我們也需要為這些用戶端套用變更。

我們有伺服器端查詢來確認是否使用 SSL/TLS?

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

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

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