將與 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 資料庫引擎來加密連線 (部分機器翻譯) 之步驟 1:設定 SQL Server 以使用憑證與步驟 2:設定 SQL Server 以進行加密中所述的兩個程序之後,使用下列其中一個選項來設定用戶端應用程式以進行加密。
選項 1:將用戶端應用程式設定為信任伺服器憑證。 此設定會導致用戶端略過驗證伺服器憑證的步驟,並繼續進行加密流程。 例如,如果您使用 SQL Server Management Studio (SSMS) 20 和更新版本,您可以在 [登入] 頁面上選取 [信任伺服器憑證],或在舊版的 [選項] 頁面上選取 [信任伺服器憑證]。
選項 2:在每個用戶端上,執行下列步驟,以將憑證的發行授權單位新增至信任的根授權單位存放區:
案例 2:只有某些用戶端需要加密的連線
設定憑證以供 SQL Server 使用 (如設定 SQL Server 資料庫引擎來加密連線 (部分機器翻譯) 的步驟 1:設定 SQL Server 以使用憑證中所述) 之後,使用下列其中一個選項來設定用戶端應用程式以進行加密:
選項 1:將用戶端應用程式設定為信任伺服器憑證,並將連線屬性中的加密關鍵字指定為 Yes 或 True。 例如,如果您使用 Microsoft ODBC Driver for SQL Server,則連接字串應該指定 Encrypt=Yes;TrustServerCertificate=Yes;
。
如需伺服器憑證和加密的詳細資訊,請參閱使用 TrustServerCertificate (部分機器翻譯)。
選項 2:在每個用戶端上,將憑證的發行授權單位新增至受信任的根授權單位存放區,並在連接字串中將加密參數指定為 Yes:
從執行 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 上不需要額外的設定。
警告
使用自我簽署憑證加密的 SSL 連線不會提供強式安全性,因為自我簽署憑證中的密鑰長度比 CA 所產生的憑證中的金鑰長度短。 這種連線容易受到攔截式攻擊。 在實際執行環境中,或在連線到網際網路的伺服器上,您不應該仰賴使用自我簽署憑證的 SSL。
相關內容
- SQL Server 與用戶端加密摘要 (部分機器翻譯)