摘要

本文將逐步告訴您,如何使用 Microsoft Management Console (MMC) 在執行 Microsoft SQL Server 的電腦上安裝憑證,以及如何在伺服器啟用 SSL 加密或為特定用戶端啟用 SSL 加密。

注意:您無法使用這個方法,在 SQL Server 叢集伺服器上放置憑證。 若是叢集執行個體,請參閱本文稍後<在 SQL Server 叢集安裝上啟用 SSL 的憑證>的說明。 

如果您的公司已實作企業憑證授權單位,您可以針對 SQL Server 獨立伺服器要求憑證,然後將憑證用於安全通訊端層 (SSL) 加密。

您可以在伺服器或用戶端上啟用「強制通訊協定加密」 選項。 

附註若要在伺服器上啟用「強制通訊協定加密」,請使用「伺服器網路公用程式」或 SQL Server 組態管理員,視 SQL Server 版本而定。 若要在用戶端上啟用「強制通訊協定加密」,請使用「用戶端網路公用程式」或 SQL Server 組態管理員。  

重要:如果您使用「用戶端網路公用程式」(適用於 SQL Server 2000 用戶端) 或 SQL Server 組態管理員中的「SQL Native Client <version> 組態 (32 位元)」或「SQL Native Client <version> 組態」頁面來啟用 SSL 加密,來自該用戶端的所有連線將會要求對該用戶端所連接的任何 SQL Server 進行 SSL 加密。

如果您在伺服器上啟用 [強制通訊協定加密],則必須在伺服器上安裝憑證。

如果您要在用戶端上啟用 [強制通訊協定加密],必須具有伺服器上的憑證,並且用戶端必須將受信任的根授權單位更新為信任伺服器憑證。

附註 如果您使用 SQL Server 來啟用 SQL Server 的加密連接,可以將 ForceEncryption 選項的值設定為 Yes。 如需詳細資訊,請參閱《SQL Server 線上叢書》中的<啟用 Database Engine 的加密連接 (SQL Server 組態管理員)>:

http://msdn.microsoft.com/zh-tw/library/ms191192(v=sql.110).aspx#ConfigureServerConnections

使用 Microsoft Management Console (MMC) 在伺服器上安裝憑證

若要使用 SSL 加密,您必須在伺服器上安裝憑證。 請使用 Microsoft Management Console (MMC) 嵌入式管理單元,依照下列步驟執行以安裝憑證。

如何設定 MMC 嵌入式管理單元

  1. 若要開啟 [憑證] 嵌入式管理單元,請依照下列步驟執行:

    1. 若要開啟 MMC 主控台,請按一下 [開始],然後按一下 [執行]。 在 [執行] 對話方塊中輸入:

      MMC

    2. 在 [主控台] 功能表上,按一下 [新增/移除嵌入式管理單元]。

    3. 按一下 [新增],然後按一下 [憑證]。 再按一下 [新增]。

    4. 系統隨即提示您開啟目前使用者帳戶、服務帳戶或電腦帳戶的嵌入式管理單元。 選取 [電腦帳戶]。

    5. 選取 [本機電腦],然後按一下 [完成]。

    6. 按一下 [新增獨立嵌入式管理單元] 對話方塊中的 [關閉]。

    7. 按一下 [新增/移除嵌入式管理單元] 對話方塊中的 [確定]。 您安裝的憑證會位於 [個人] 容器的 [憑證] 資料夾中。

  2. 使用 MMC 嵌入式管理單元,在伺服器上安裝憑證:

    1. 按一下以選取左邊窗格中的 [個人] 資料夾。

    2. 以滑鼠右鍵按一下右邊窗格,指向 [所有工作],然後按一下 [要求新憑證]。

    3. [憑證要求精靈] 對話方塊隨即開啟。 按 [下一步]。 選取 [憑證類型為 "computer"]。

    4. 在 [易記名稱] 文字方塊中,您可以為憑證輸入易記名稱,或者保留空白,然後完成精靈。 精靈結束之後,您將會在資料夾中看到具有完整電腦網域名稱的憑證。

    5. 如果您要為特定用戶端啟用加密,請略過這個步驟並繼續參閱本文的為特定用戶端啟用加密一節。

      對於 SQL Server 2000,若要在伺服器啟用加密,請在安裝憑證的伺服器開啟「伺服器網路公用程式」,然後按一下以選取 [強制通訊協定加密] 核取方塊。 重新啟動 MSSQLServer (SQL Server) 服務,使加密生效。 您的伺服器現已準備好使用 SSL 加密。

      對於 SQL Server 2005 和以後的版本,若要在伺服器啟用加密,請開啟「SQL Server 組態管理員」並執行下列操作:

      1. 在 [SQL Server 組態管理員] 中,展開 [SQL Server 網路組態],以滑鼠右鍵按一下 [<server instance> 的通訊協定],然後選取 [屬性]。

      2. 在「憑證」索引標籤中從「憑證」下拉式功能表選取所要的憑證,然後按一下「確定」。

      3. 在 [旗標] 索引標籤中,選取 [ForceEncryption] 方塊中的 [Yes],然後按一下 [確定] 以關閉對話方塊。

      4. 重新啟動 SQL Server 服務。

在 SQL Server 叢集安裝啟用 SSL 的憑證

SQL Server 用來加密連接的憑證是在下列登錄機碼中指定:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.x\MSSQLServer\SuperSocketNetLib\Certificate

這個機碼包含憑證的屬性,而憑證又稱為「指紋」,可用來識別伺服器中的每個憑證。 在叢集環境中,這個機碼會設定為 Null,即使存放區存在正確的憑證亦然。 若要解決這個問題,在每個節點安裝憑證之後,您必須針對每個叢集節點執行下列額外步驟:

  1. 瀏覽至存放 FQDN 憑證的憑證存放區。 在憑證的屬性頁面上,移至 [詳細資料] 索引標籤,並將憑證的指紋值複製到 [記事本] 視窗。

  2. 在 [記事本] 中,移除指紋值中十六進位字元之間的空格。

  3. 啟動 regedit,瀏覽至下列登錄機碼,並複製步驟 2 中的值:

    HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\<instance>\MSSQLServer\SuperSocketNetLib\Certificate

  4. 如果 SQL 虛擬伺服器目前位於這個節點,請容錯移轉至叢集中的其他節點,然後將發生登錄變更的節點重新開機。

  5. 對所有節點重複執行這個程序。


如需這個程序的螢幕擷取畫面,請參閱 MSDN 的下列部落格文章:

http://blogs.msdn.com/b/jorgepc/archive/2008/02/19/enabling-certificates-for-ssl-connection-on-sql-server-2005-clustered-installation.aspx

為特定用戶端啟用加密

對於要求 SSL 加密的用戶端,用戶端電腦必須信任伺服器憑證,並且憑證必須已存在伺服器上。 您必須使用 MMC 嵌入式管理單元來匯出伺服器憑證所使用之受信任的根憑證授權單位:

  1. 若要匯出伺服器憑證的受信任的根憑證授權單位 (CA),請執行下列步驟:

    1. 開啟 MMC,然後在 [個人] 資料夾中找出您的憑證。

    2. 以滑鼠右鍵按一下憑證名稱,然後按一下 [開啟]。

    3. 檢閱 [憑證路徑] 索引標籤。 記下最上面的項目。

    4. 瀏覽至 [受信任的根憑證授權單位] 資料夾,然後找出步驟 c 中記下的根憑證授權單位。

    5. 以滑鼠右鍵按一下 [CA],指向 [所有工作],然後按一下 [匯出]。

    6. 選取所有預設值,然後將匯出的檔案儲存到磁碟,以便用戶端電腦存取檔案。

  2. 依照下列步驟執行,在用戶端電腦匯入憑證:

    1. 使用 MMC 嵌入式管理單元瀏覽至用戶端電腦,然後瀏覽至 [受信任的根憑證授權單位] 資料夾。

    2. 以滑鼠右鍵按一下 [受信任的根憑證授權單位] 資料夾,指向 [所有工作],然後按一下 [匯入]。

    3. 瀏覽並選取您在步驟 1 產生的憑證 (.cer 檔案)。 選取預設值,以完成精靈的其餘部分。

    4. 使用 [SQL Server 用戶端網路公用程式]。

    5. 按一下以選取 [強制通訊協定加密] 選項。 您的用戶端現已準備好使用 SSL 加密。

如何測試您的用戶端連接

若要測試您的用戶端連接,您可以採用下列其中一個方法:

  • 使用 SQL Management Studio。

    -或-

  • 使用任何可讓您變更連接字串的 ODBC 或 OLEDB 應用程式。

SQL Server Management Studio


若要使用 SQL Server Management Studio 來測試,請依照下列步驟執行:

  1. 瀏覽至「SQL Server 組態管理員」的「SQL Server 用戶端 <version> 組態」頁面。

  2. 在屬性視窗中,將「強制通訊協定加密」 選項設定為「是」。

  3. 使用 SQL Server Management Studio,以連接到執行 SQL Server 的伺服器。

  4. 使用 Microsoft Network Monitor 或 Network Sniffer 監控通訊內容。


ODBC 或 OLEDB 應用程式範例連接字串

如果您使用類似 SQL Native Client 等提供者所提供的 ODBC 或 OLEDB 連接字串,請新增 Encrypt 關鍵字並在連接字串中設定為 true,然後使用 Microsoft Network Monitor 或 Network Sniffer 監視通訊。

疑難排解

成功安裝憑證之後,憑證未出現在 [憑證] 索引標籤的 [憑證] 清單中。

注意:[憑證] 索引標籤位於 [SQL Server 組態管理員] 的 [<InstanceName> 的通訊協定屬性] 對話方塊。

之所以發生這個問題,是因為您安裝了無效的憑證。 如果憑證無效,就不會列在 [憑證] 索引標籤中。 若要判斷您安裝的憑證是否有效,請執行下列步驟:

  1. 開啟 [憑證] 嵌入式管理單元。若要執行這項操作,請參閱<如何設定 MMC 嵌入式管理單元>章節中的步驟 1。

  2. 在 [憑證] 嵌入式管理單元中,展開 [個人],然後展開 [憑證]

  3. 在右邊窗格中,找出您安裝的憑證。

  4. 判斷憑證是否符合下列需求:

    • 在右邊窗格中,這個憑證的 [使用目的] 欄中的值必須是 [伺服器驗證]

    • 在右邊窗格中,[發給] 欄中的值必須是伺服器名稱。

  5. 按兩下憑證,然後判斷憑證是否符合下列需求:

    • [一般] 索引標籤上,您收到下列訊息:

      這個憑證有一個對應的私密金鑰。

    • [詳細資料] 索引標籤上,[主旨] 欄位的值必須是伺服器名稱。

    • [增強金鑰使用方法] 欄位的值必須是 [伺服器驗證 (<number>)]

    • [憑證路徑] 索引標籤上,伺服器名稱必須出現在 [憑證路徑] 下方。

如果未符合上述任一需求,表示憑證無效。

其他相關資訊

如果您遇到錯誤 17182,請參閱下列文章,了解詳細資訊和解決方案:

當 SQL Server 設定為使用 SSL 時,伺服器無法啟動並出現錯誤 17182「TDSSNIClient 初始化失敗,其錯誤為 0xd,狀態碼為 0x38」(英文)


需要更多協助?

擴展您的技能
探索訓練
優先取得新功能
加入 Microsoft 測試人員

這項資訊有幫助嗎?

您對翻譯品質的滿意度為何?
以下何者是您會在意的事項?

感謝您的意見反應!

×