首頁 >後端開發 >Golang >為什麼 Azure SQL 資料庫 v12 升級後會引發 TLS 握手失敗?

為什麼 Azure SQL 資料庫 v12 升級後會引發 TLS 握手失敗?

DDD
DDD原創
2024-10-27 01:15:30417瀏覽

 Why Does Azure SQL Database v12 Throw a TLS Handshake Failure After Upgrade?

Azure SQL 數據庫錯誤:v12 升級後TLS 握手失敗

問題:

以下升級到Azure SQL 資料庫v12 時,使用者遇到TLS 握手失敗,並顯示錯誤訊息:「TLS 握手失敗:x509:憑證對於tr12.northcentralus1-a.worker.database.windows.net、*.tr12.northcentralus1 有效- a.worker.database.windows.net,而不是[伺服器名稱].database.windows.net。連接字串。但是,正常運作的本機環境與發生故障的 Azure Web App 之間保持一致。

解決方案:

解決方案在於修改連線參數:

將 TrustServerCertificate 設為 True。

新增參數 hostNameInCertificate,值為 *.database.windows.net。

  1. 最終連接字串:

說明:

TrustServerCertificate 參數指示是否信任AertE資料庫服務提供的伺服器憑證。將其設為 True 允許連接繼續,即使沒有為連接字串中指定的特定伺服器名稱頒發憑證。
Server=[server-name].database.windows.net;Port=1433;Database=[dbname];User
ID=[user];Password=[pass];Trusted_Connection=False;Encrypt=True;Connection
Timeout=30;
TrustServerCertificate=True;hostNameInCertificate=*.database.windows.net;

如果伺服器憑證包含指定的主機名,hostNameInCertificate 參數允許連線成功。這解決了憑證對於與指定伺服器名稱不同的主機名稱有效的問題。

Azure 入口網站設定:

值得注意的是,Azure 入口網站建議將 TrustServerCertificate 設為 False 並省略 hostNameInCertificate 參數。然而,這個配置並沒有解決問題。

以上是為什麼 Azure SQL 資料庫 v12 升級後會引發 TLS 握手失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn