啟用加密的連線

已完成

透過網路在 SQL Server 執行個體與使用傳輸層安全性 (TLS) 用戶端應用程式之間傳輸的資料可以加密。 TLS 加密是在通訊協定層內執行,而且適用於所有支援的 SQL Server 和 Azure SQL 資料庫服務。

傳輸層安全性 (TLS)

傳輸層安全性 (TLS) 是加密連線所使用的通訊協定,可提升透過網路在 SQL Server 執行個體和應用程式之間傳輸的資料安全性。

私人憑證經憑證授權單位核發,且指派給執行 SQL Server 執行個體的伺服器之後,伺服器就可以使用該憑證以安全的方式驗證用戶端要求。 這種驗證必須將執行用戶端應用程式的電腦設定成信任 SQL Server 使用的憑證。

Azure SQL Database 可以在伺服器層級強制執行最低的 TLS 版本。 目前支援的 TLS 版本為 1.01.11.2。 如果用戶端應用程式支援加密的連線,建議您在測試應用程式之後,將其設定為支援的最新 TLS 版本。 選擇最新的 TLS 版本是很好的做法,因為最新版本會提供已知舊版弱點的額外修正。

Minimal TLS version property for Azure SQL Database.

SQL Database 的最低 TLS 版本設定可從 [防火牆與虛擬網路] 畫面中存取,如上圖所示。

下表說明可用的選項,視用戶端應用程式是否支援加密的連線而定。

案例 選項
不支援 TLS 保留預設值的最低 TLS 版本設定。
支援的最新 TLS 版本 將最低的 TLS 版本設為 1.2。
支援的較舊 TLS 版本 將最低的 TLS 版本設為 1.0 或 1.2。 評估 TLS 1.2 整備程度的工作負載,並開發移轉計劃。

啟用 TLS 加密可為 SQL Server 執行個體和應用程式之間的通訊提供隱私權和資料安全性。 不過,使用 TLS 加密 SQL Server 與用戶端應用程式之間的流量時,連線期間會需要更多的網路來回行程和額外的處理。

若為 Azure SQL 受控執行個體,請使用 az sql mi update Azure CLI 命令或 Set-AzSqlInstance PowerShell Cmdlet 來設定最低 TLS 版本。

注意

根據預設,Azure SQL Database 不需要特定的最低 TLS 版本。 強制執行 TLS 版本之後,就無法再還原為預設值。

憑證

您必須使用本機系統管理員帳戶執行 SQL Server 組態管理員,才能安裝憑證以供 SQL Server 使用。

此外,憑證必須符合下列條件:

  • 憑證必須位於本機電腦憑證存放區或目前使用者的憑證存放區。

  • SQL Server 服務帳戶必須具有存取憑證的權限。

  • 憑證必須在有效期內。

注意

如未提供正確的存取權,重新啟動 SQL Server 服務將會失敗。

如需安裝 TLS 憑證時的完整需求清單,請參閱啟用資料庫引擎的加密連線

設定 SQL Server 執行個體

您可以遵循下列步驟,將 SQL Server 執行個體設定為使用加密的連線:

  1. 在 [SQL Server 組態管理員] 中,展開 [SQL Server 網路組態],以滑鼠右鍵按一下 [<伺服器執行個體> 的通訊協定],然後選取 [屬性]

    SQL Server Configuration Manager screen for a SQL Server instance.

  2. 在 [<伺服器執行個體> 的通訊協定] 對話方塊中,選取 [憑證] 索引標籤,再從 [憑證] 下拉式清單中選取憑證。

    Protocols dialog box from Configuration Manager.

  3. 在 [旗標] 索引標籤的 [ForceEncryption] 屬性中選取 [是],然後按一下 [確定]

    Protocols for SQL Server instance properties from Configuration Manager.

  4. 重新啟動 SQL Server 服務。

必要設定就緒之後,您就可以透過 SQL Server Management Studio 測試連線:

  1. 在 [連接到伺服器] 對話方塊中,完成連接資訊,然後按一下 [選項]

  2. 在 [連接屬性] 索引標籤上,按一下 [加密連線],然後按一下 [連線]

    Connect to Server dialog showing the encrypt connection feature on SSMS.

您必須正確執行所有步驟,才能使用 TLS 透過 SQL Server Management Studio 進行驗證。