瞭解 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 Database 與 Azure SQL 受控執行個體。
如果您目前未使用 SSL/TLS,則應用程式可用性不會受到影響。 您可以藉由查看連接字串,確認用戶端應用程式是否嘗試驗證根憑證。 如果 TrustServerCertificate 明確設定為 true,則不會受到影響。
如果您的用戶端驅動程式利用 OS 憑證存放區 (如同大部分的驅動程式),且您的 OS 會定期進行維護,則這項變更可能不會造成影響,因為您應該可在受信任的根憑證存放區中,使用要切換的根憑證。 檢查 Baltimore CyberTrust 根和 DigiCert GlobalRoot G2 根,並驗證其是否存在。
如果您的用戶端驅動程式利用本機檔案憑證存放區,以免憑證遭到非預期撤銷時,導致應用程式的可用狀態中斷,或是要更新已撤銷的憑證,請參閱我需要怎麼做才能維持連線能力一節。
我需要怎麼做才能維持連線能力
若要避免憑證遭到非預期撤銷時,應用程式的可用狀態中斷,或是要更新已撤銷的憑證,請依以下這些步驟操作:
下載 Baltimore CyberTrust 根與 DigiCert GlobalRoot G2 根 CA:
產生合併的 CA 憑證存放區,其中同時包含 BaltimoreCyberTrustRoot 和 DigiCertGlobalRootG2 憑證。
這會造成什麼影響?
如果您要驗證此處所述的伺服器憑證,應用程式可能會無法連線到資料庫而使可用狀態中斷。 視您的應用程式而定,您可能會收到各種不同的錯誤訊息,包括但不限於:
- 不正確憑證/憑證已撤銷
- 連線逾時
- 錯誤 (若適用)
常見問題集
如果我不是使用 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 支援要求。