將與 SQL Server 的連線加密的特殊案例
用戶端計算機必須信任伺服器證書,讓用戶端可以要求傳輸層安全性 (TLS) 加密,而且憑證必須已經存在伺服器上。 最常見的 SQL Server 加密案例涉及下列環境:
- 強制將所有與 SQL Server 的連入用戶端連線加密。
- 使用 Windows 已經信任之公開商業憑證授權單位所簽發的憑證。 CA 的對應根憑證會安裝在您網路中所有電腦上受信任的根憑證授權單位憑證存放區中。
在此案例中,根據設定 SQL Server 資料庫引擎來加密連線 (部分機器翻譯) 中所述的程序,在設定 SQL Server 以進行加密之後,您不需執行其他步驟,即可成功加密。 此文章針對設定 SQL Server 資料庫引擎來加密連線 (部分機器翻譯) 中未涵蓋且較不常見的案例,提供將與 SQL Server 的連線加密的程序。
注意
如需 Microsoft 信任的根計劃中參與者的完整清單,請參閱參與者清單 - Microsoft 信任的根計劃 (部分機器翻譯)。
使用公開商業憑證授權單位所簽發的憑證,而且只有某些用戶端需要加密的連線
根據設定 SQL Server 以使用憑證 (部分機器翻譯) 中所述的程序,在 SQL Server 上設定憑證。
將連線屬性中的加密關鍵字指定為 Yes 或 True。 例如,如果您使用 Microsoft ODBC Driver for SQL Server,則連接字串應該指定
Encrypt=yes;
。
使用內部 CA 所簽發的憑證,或者使用 New-SelfSignedCertificate 或 makecert 建立的憑證
案例 1:您想要將所有與 SQL Server 的連線加密
在完成文章中所述的第一步:將 SQL Server 設定為使用憑證 和第二步:設定 SQL Server 的加密設定 後,設定 SQL Server 資料庫引擎以加密連線,請選擇下列其中一個選項來設定您的用戶端應用程式以使用加密。
選項 1: 將用戶端應用程式設定為 信任伺服器證書。 此設定會導致用戶端略過驗證伺服器憑證的步驟,並繼續進行加密流程。 例如,如果您使用 SQL Server Management Studio (SSMS) 20 和更新版本,您可以在 [登入] 頁面上選取 [信任伺服器憑證],或在舊版的 [選項] 頁面上選取 [信任伺服器憑證]。
選項 2: 在每個用戶端上,執行下列步驟,將憑證的發行授權單位新增至受信任的根授權單位存放區:
案例 2:只有某些用戶端需要加密的連線
當您按照步驟 1中所述的步驟為SQL Server設定憑證,並在設定SQL Server Database Engine以加密連線之後,請使用下列選項之一來設定您的用戶端應用程式進行加密:
選項 1:將用戶端應用程式設定為信任伺服器證書,並在連線屬性中指定加密關鍵詞,以 [是] 或 True。 例如,如果您使用 Microsoft ODBC Driver for SQL Server,則連接字串應該指定 Encrypt=Yes;TrustServerCertificate=Yes;
。
如需伺服器憑證和加密的詳細資訊,請參閱使用 TrustServerCertificate (部分機器翻譯)。
選項 2:在每個用戶端上,將憑證的發行授權單位新增至受信任的根授權單位存放區,並在連接字串中指定加密參數為 是:
從執行 SQL Server 的電腦中,使用匯出憑證 (部分機器翻譯) 中所述的程序,從執行 SQL Server 的電腦中匯出憑證。
匯入憑證 (部分機器翻譯)。
將連線屬性中的加密關鍵字指定為 Yes 或 True。 例如,如果您使用 Microsoft OLEDB Driver for SQL Server,則連接字串應該指定 Use Encryption for Data = True;
使用由 SQL Server 自動建立的自我簽署憑證
案例 1:您想要將所有與 SQL Server 的連入連線加密
使用設定 SQL Server 資料庫引擎來加密連線 (部分機器翻譯) 的步驟 2:在 SQL Server 中設定加密設定中所述的程序,在 SQL Server 上啟用加密。
將用戶端應用程式設定為信任伺服器憑證。 信任伺服器憑證會導致用戶端略過驗證伺服器憑證的步驟,並繼續進行加密流程。 例如,如果您使用 SQL Server Management Studio (SSMS) 20 和更新版本,您可以在 [登入] 頁面上選取 [信任伺服器憑證],或在舊版的 [選項] 頁面上選取 [信任伺服器憑證]。
案例 2:只有某些用戶端需要加密的連線
將用戶端應用程式設定為信任伺服器憑證,並將連線屬性中的加密關鍵字指定為 Yes 或 True。 例如,如果您使用 Microsoft ODBC Driver for SQL Server,則連接字串應該指定 Encrypt=Yes;TrustServerCertificate=Yes;
。
在此案例中,SQL Server 上不需要額外的設定。
警告
使用自我簽署憑證加密的 TLS/SSL 連線不提供強式安全性,因為自我簽署憑證中的密鑰長度比 CA 所產生的憑證中的密鑰短。 他們容易受到中間人攻擊。 您不應該依賴在生產環境中或連線到因特網的伺服器中使用自我簽署憑證的 TLS/SSL。
相關內容
- SQL Server 與用戶端加密摘要 (部分機器翻譯)