Sql-Server

在 SQL 2008 R2 上安裝 PFX 證書

  • January 16, 2021

我們有一個在 Windows 7 電腦上執行的 MS SQL 2008 R2 服務。我開發了一個在 Digital Ocean 液滴上執行的 web 應用程序。該 Droplet 通過子域“sql.client-domain.ext”(虛擬域名)與這台電腦建立連接。

有一個防火牆,它只允許從 droplet 連接到執行 SQL 服務的電腦。

我想要在 droplet 和電腦之間建立加密連接。我已經購買了證書。

在我的本地測試機器上,我已將 PFX 證書安裝在個人文件夾中(在 MMC 中)。我添加了具有證書密鑰讀取權限的“網路服務”使用者。

在 SQL 管理控制台中,我在任何地方都看不到證書。我試過重啟服務,什麼都沒有。

我還嘗試將主機名更改為子域,並將子域添加到 Windows 目錄下的 hosts 文件中。

EXEC sp_addserver 'sql.client-domain.ext', local; 

Host file: 127.0.0.1 sql.client-domain.ext

我可以在 SQL 客戶端程序中連接到 sql.client-domain.ext 但我無法選擇證書。

我只需要 TCP 連接的證書,不需要本地連接。

任何提示或有經驗的建議?

請嘗試按照以下步驟操作:

  • 啟動 Microsoft 管理控制台。選擇文件 > 添加/刪除管理單元:

在此處輸入圖像描述

  • 添加證書管理單元:

在此處輸入圖像描述

  • 選擇“電腦帳戶”:

在此處輸入圖像描述

  • 使用本地電腦:

在此處輸入圖像描述

  • 現在配置了管理單元,右鍵點擊“個人”證書儲存文件夾,選擇所有任務 > 導入:

在此處輸入圖像描述

  • 使用證書導入嚮導選擇要導入的 .PFX 文件。無論哪種情況,請按照導入嚮導的說明進行操作。輸入創建 PFX 文件時設置的密碼。確保選中“包括所有擴展屬性”:

在此處輸入圖像描述

  • 選擇“將所有證書放入以下儲存”並選擇“個人”儲存:

在此處輸入圖像描述

導入證書後,必須將 SQL Server 配置為使用它。SQL Server 2008/R2 的 SQL Server 配置管理器有一個選項來設置與實例關聯的證書,方法是打開“SQL Server Networking Configuration”,右鍵點擊“Protocols for”,然後打開“Certificate”選項卡。但是,此方法不能用於為屬於域的伺服器選擇機器證書以外的任何證書。

  • 找到證書的“指紋”,並將其複製到剪貼板。在證書管理控制台中,可以通過打開證書,選擇“詳細資訊”選項卡,滾動到欄位列表底部,然後選擇“指紋”來找到它:

在此處輸入圖像描述

  • 找到指紋後,將其從證書查看器中複製出來,粘貼到記事本中,刪除所有空格,然後將修改後的指紋複製回剪貼板。小心——很容易犯錯。

    • 打開系統資料庫
    • 導航到:HKLM\Software\Microsoft\Microsoft SQL Server\MSSQLServer\SuperSocketNetLib
    • 找到“證書”條目
    • 將其值分配給從證書中複製的指紋,例如:

在此處輸入圖像描述

必須重新啟動實例才能使更改生效。

引用自:https://dba.stackexchange.com/questions/283340