如何通過使用 Microsoft 管理控制台啟用 SSL 加密的 SQL Server 實例
關鍵詞:MSSQL加密,sql server加密,sql server客戶端與服務器傳輸內容加密
轉自:https://support.microsoft.com/zh-cn/help/316898/how-to-enable-ssl-encryption-for-an-instance-of-sql-server-by-using-mi
客戶端與服務器建立連接的過程默認是加密的;
問:MS SQL 服務器端配置好了強制加密協議,為什么客戶端不勾選"加密連接”依然能連?
客戶端和服務端並不需要同時配置,任意一端要求加密,則數據傳輸都會加密,可以用 network monitor 抓包確認,如果沒有加密,則可以在這個里面從 TDS 包看到明文數據
重要提示:本文章是 Microsoft 軟件自動翻譯的結果,而非專業譯者翻譯的結果。 Microsoft 提供專業人員翻譯的文章、由自動翻譯生成的文章以及來自 Microsoft 社區的文章翻譯,因此你能夠以自己的語言閱讀所有知識庫文章。 需要注意的是,由自動翻譯生成的文章(包括 Microsoft 社區審閱的文章)可能包含詞匯、句法或語法錯誤。 對於因不正確的內容翻譯或使用不正確的內容翻譯而造成的不准確或錯誤或任何損害,Microsoft 概不負責。
查看原始英文文章:316898
概要
本分步指南介紹如何在運行 Microsoft SQL Server 通過使用 Microsoft 管理控制台 (MMC) 並描述如何在服務器上,或為特定的客戶端啟用 SSL 加密的計算機上安裝證書。
注意:此方法不能用於將證書放在群集 SQL Server 的服務器上。為群集實例,請參見方法在"啟用證書用於 SSL 在群集 SQL Server 安裝,"文中所述這篇文章。
如果您的公司實現企業證書頒發機構時,可以申請證書的獨立 SQL Server 的服務器,然后使用安全套接字層 (SSL) 加密的證書。
您可以啟用強制協議加密選項在服務器或客戶端上。
注意:若要在服務器上,啟用強制協議加密,使用服務器網絡實用程序或 SQL Server 配置管理器,具體取決於的 SQL Server 版本。若要在客戶端上啟用強制協議加密,使用客戶端網絡實用程序或 SQL Server 配置管理器。
重要:如果您通過使用客戶端網絡實用工具 (對於 SQL Server 2000年客戶端) 或 SQL 本機客戶端< 版本 >配置 (32 位) 或 SQL 本機客戶端啟用 SSL 加密< 版本 >配置頁面中 SQL Server 配置管理器中,從該客戶端的所有連接都請求 SSL 加密對客戶端連接到任何 SQL Server。
如果您在服務器上啟用強制協議加密,您必須在服務器上安裝證書。
如果您想要在客戶端上啟用強制協議加密,您必須在服務器上有證書,則客戶端必須更新信任服務器證書受信任的根頒發機構。
注意:如果您使用 SQL Server 使加密的連接的 SQL Server 實例,您可以設置ForceEncryption選項的值為是。有關詳細信息,請參閱"啟用加密連接到數據庫引擎 (SQL Server 配置管理器)"SQL Server 聯機叢書中:
如何配置 mmc 管理單元
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.x\MSSQLServer\SuperSocketNetLib\Certificate
此項包含一個屬性的證書稱為標識服務器中的每個證書的指紋。在群集環境中,此注冊表項將被設置為 Null 的即使正確的證書存儲中存在。要解決此問題,必須采取下列額外的步驟,在每個群集節點上於每個節點安裝證書之后):
此過程中的屏幕快照,請參見以下博客文章在 MSDN 上:
若要使用 SQL Server 管理 Studio 進行測試,請執行以下步驟:
ODBC 或 OLEDB 應用程序連接字符串示例
如果使用 ODBC 或 OLEDB 連接字符串,如 SQL 本機客戶端提供程序中的,添加加密關鍵字並將其設置為true ,在連接字符串中,然后監視通信使用一種工具,如 Microsoft網絡監視器或網絡嗅探器
注意:證書選項卡處於打開 SQL Server 配置管理器協議實例 < 名稱 >屬性對話框。
因為您可能已安裝證書無效,將出現此問題。如果證書是無效的它將不會在證書選項卡上列出。要確定您安裝的證書是否有效,請執行以下步驟:
注意:此方法不能用於將證書放在群集 SQL Server 的服務器上。為群集實例,請參見方法在"啟用證書用於 SSL 在群集 SQL Server 安裝,"文中所述這篇文章。
如果您的公司實現企業證書頒發機構時,可以申請證書的獨立 SQL Server 的服務器,然后使用安全套接字層 (SSL) 加密的證書。
您可以啟用強制協議加密選項在服務器或客戶端上。
注意:若要在服務器上,啟用強制協議加密,使用服務器網絡實用程序或 SQL Server 配置管理器,具體取決於的 SQL Server 版本。若要在客戶端上啟用強制協議加密,使用客戶端網絡實用程序或 SQL Server 配置管理器。
重要:如果您通過使用客戶端網絡實用工具 (對於 SQL Server 2000年客戶端) 或 SQL 本機客戶端< 版本 >配置 (32 位) 或 SQL 本機客戶端啟用 SSL 加密< 版本 >配置頁面中 SQL Server 配置管理器中,從該客戶端的所有連接都請求 SSL 加密對客戶端連接到任何 SQL Server。
如果您在服務器上啟用強制協議加密,您必須在服務器上安裝證書。
如果您想要在客戶端上啟用強制協議加密,您必須在服務器上有證書,則客戶端必須更新信任服務器證書受信任的根頒發機構。
注意:如果您使用 SQL Server 使加密的連接的 SQL Server 實例,您可以設置ForceEncryption選項的值為是。有關詳細信息,請參閱"啟用加密連接到數據庫引擎 (SQL Server 配置管理器)"SQL Server 聯機叢書中:
在 Microsoft 管理控制台 (MMC) 的服務器上安裝證書
若要使用 SSL 加密,您必須在服務器上安裝證書。按照以下步驟安裝通過使用 Microsoft 管理控制台 (MMC) 管理單元中的證書。如何配置 mmc 管理單元
- 若要打開證書管理單元,請執行以下步驟:
- 若要打開 MMC 控制台中,單擊開始,然后單擊運行。在運行對話框中鍵入:
MMC
- 在控制台菜單上,單擊添加/刪除管理單元-...。
- 單擊添加,然后單擊證書。再次單擊添加。
- 提示您打開管理單元的當前用戶帳戶的服務帳戶或計算機帳戶。選擇計算機帳戶。
- 選擇本地計算機,然后單擊完成。
- 單擊關閉添加獨立管理單元對話框中。
- 單擊添加/刪除管理單元對話框中的確定。您已安裝的證書位於證書文件夾的個人的容器中。
- 若要打開 MMC 控制台中,單擊開始,然后單擊運行。在運行對話框中鍵入:
- 使用 MMC 管理單元中的服務器上安裝證書:
- 單擊左側窗格中選擇個人文件夾。
- 在右窗格中右鍵單擊,指向所有任務,,然后單擊申請新證書...。
- 證書申請向導對話框將打開。單擊下一步。選擇證書類型是"電腦"。
- 在好記的名稱文本框中可以鍵入證書的友好名稱或將文本框保留為空,並完成向導。完成向導后,您將看到使用完全合格的計算機的域名的文件夾中的證書。
- 如果您想要為特定客戶端或客戶端啟用加密,請跳過此步驟並進入本文的啟用對特定客戶端的加密部分。
對於SQL Server 2000年中,要啟用服務器上的加密,請打開服務器網絡實用工具上的服務器證書已安裝,然后單擊以選中強制協議加密復選框。重新啟動才能生效的加密 (SQL Server) MSSQLServer 服務。您的服務器現在就可以使用 SSL 加密。
對於SQL Server 2005 及更高版本,若要啟用加密,在服務器上,打開 SQL Server 配置管理器,請執行下列操作:- 在SQL Server 配置管理器中,展開SQL Server 網絡配置、協議 < 服務器實例 >中,用鼠標右鍵單擊,然后選擇屬性。
- 在證書選項卡上從證書下拉菜單中,選擇所需的證書,然后單擊確定。
- 在標志選項卡上,在ForceEncryption框中,選擇是,然后單擊確定以關閉該對話框。
- 重新啟動 SQL Server 服務。
在群集 SQL Server 安裝啟用 SSL 證書
在下面的注冊表項中指定 SQL Server 用於加密連接的證書:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.x\MSSQLServer\SuperSocketNetLib\Certificate
此項包含一個屬性的證書稱為標識服務器中的每個證書的指紋。在群集環境中,此注冊表項將被設置為 Null 的即使正確的證書存儲中存在。要解決此問題,必須采取下列額外的步驟,在每個群集節點上於每個節點安裝證書之后):
- 導航到存儲該 FQDN 證書的證書存儲區。在屬性頁上的證書,請轉到詳細信息選項卡和證書的指紋值復制到記事本窗口。
- 刪除在記事本的指紋值中的十六進制字符間的空格。
- 啟動注冊表編輯器,定位到以下注冊表項,和第 2 步中復制的值:
HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\ < 實例 >\MSSQLServer\SuperSocketNetLib\Certificate
- 如果 SQL 虛擬服務器當前位於此節點故障轉移到另一個群集上的節點,然后重新啟動注冊表更改的位置的節點出現。
- 重復此過程的所有節點上。
此過程中的屏幕快照,請參見以下博客文章在 MSDN 上:
為特定的客戶端啟用加密
客戶端請求 SSL 加密的客戶端計算機必須信任該服務器證書和證書必須已經存在於服務器上。您必須使用 mmc 管理單元導出受信任的根證書頒發機構使用的服務器證書:- 若要導出服務器證書的受信任根證書頒發機構 (CA),請執行以下步驟:
- 打開 MMC,然后在個人文件夾中查找您的證書。
- 用鼠標右鍵單擊證書名稱,然后單擊打開。
- 查看證書路徑選項卡,請注意頂部的大多數項目。
- 導航到受信任的根證書頒發機構文件夾,然后找到說明該證書頒發機構在步驟 c 中...
- 用鼠標右鍵單擊CA,指向所有任務,然后單擊導出。
- 選擇所有默認設置,然后將導出的文件保存到硬盤中,客戶端計算機訪問該文件的位置。
- 請按照以下步驟導入客戶端計算機上的證書:
- 通過使用 MMC 管理單元中,定位到客戶端計算機,然后瀏覽到受信任的根證書頒發機構文件夾。
- 用鼠標右鍵單擊受信任的根證書頒發機構文件夾,指向所有任務,然后單擊導入。
- 瀏覽,然后選擇您在步驟 1 中生成的證書 (.cer 文件)。選擇默認設置以完成向導的其余部分。
- 使用 SQL Server 客戶端網絡實用程序。
- 單擊以選中強制協議加密選項。您的客戶端現在就可以使用 SSL 加密。
如何測試您的客戶端連接
若要測試您的客戶端連接,您可以:- 使用 SQL 管理工作室。
-或者- - 使用的任何 ODBC 或 OLEDB 應用程序可以在其中更改連接字符串。
若要使用 SQL Server 管理 Studio 進行測試,請執行以下步驟:
- 定位到 SQL Server 配置管理器中的 SQL Server 客戶端< 版本 >配置頁。
- 在屬性窗口中,將設置強制協議加密選項為"是"。
- 連接到服務器正在運行 SQL Server 通過使用 SQL Server 管理 Studio。
- 通過使用 Microsoft 網絡監視器或網絡嗅探器監視通信。
ODBC 或 OLEDB 應用程序連接字符串示例
如果使用 ODBC 或 OLEDB 連接字符串,如 SQL 本機客戶端提供程序中的,添加加密關鍵字並將其設置為true ,在連接字符串中,然后監視通信使用一種工具,如 Microsoft網絡監視器或網絡嗅探器
故障排除
您已成功安裝證書之后,在證書選項卡上的證書列表中沒有出現證書。注意:證書選項卡處於打開 SQL Server 配置管理器協議實例 < 名稱 >屬性對話框。
因為您可能已安裝證書無效,將出現此問題。如果證書是無效的它將不會在證書選項卡上列出。要確定您安裝的證書是否有效,請執行以下步驟:
- 打開證書管理單元。若要執行此操作,請參閱"如何配置 mmc 管理單元"部分中的步驟 1。
- 在證書管理單元中,展開個人,然后展開證書。
- 在右窗格中,找到您所安裝的證書。
- 確定證書是否滿足以下要求:
- 在右窗格中,為該證書預期目的列中的值必須是服務器身份驗證。
- 在右窗格中,頒發給列中的值必須是服務器的名稱。
- 雙擊該證書,然后再確定證書是否滿足以下要求:
- 在常規選項卡中,您將收到以下消息:
- 在詳細信息選項卡上的主題字段的值必須是服務器名稱。
- 增強型密鑰用法字段的值必須是服務器身份驗證 (< 數量 >)。
- 在證書路徑選項卡上的服務器名稱必須出現在證書路徑下。
詳細信息
如果您遇到 17182 錯誤,請參閱以下文章獲取詳細的信息並解析: