共用方式為


當您連線到 SQL Server 時,「從遠端伺服器收到的憑證是由不受信任的證書頒發機構單位發出」錯誤

本文可協助您解決嘗試建立 SQL Server 加密連線時所發生的問題。

原始產品版本:SQL Server
原始 KB 編號: 2007728

徵兆

線上到 SQL Server 時,您可能會收到下列錯誤訊息:

已順利建立與伺服器的連接,但隨後在登入過程中發生錯誤。 (提供者:SSL 提供者,錯誤:0 - 憑證鏈結是由不受信任的授權單位所簽發。(.Net SqlClient 數據提供者)

此外,下列錯誤訊息會記錄在 Windows 系統事件記錄檔中。

Log Name:      System  
Source:        Schannel  
Date:          10/13/2020 3:03:31 PM  
Event ID:      36882  
Task Category: None  
Level:         Error  
Keywords:  
User:        USERNAME  
Computer:     COMPUTERNAME  
Description:  
The certificate received from the remote server was issued by an untrusted certificate authority. Because of this, none of the data contained in the certificate can be validated. The TLS connection request has failed. The attached data contains the server certificate.

原因

當您嘗試使用無法驗證的憑證對 SQL Server 進行加密連線時,就會發生此錯誤。 這可能會在下列案例中發生:

案例 伺服器端加密 用戶端加密 憑證類型 信任跟證書授權單位存放區中的證書頒發機構單位
1 您從非信任的來源布建憑證(證書頒發機構單位未列為客戶端電腦上受信任跟證書授權單位中的受信任授權單位)
2 關閉 SQL Server 自我產生憑證 自我簽署憑證不會顯示在此存放區中。

建立 SQL Server 的加密連線時,安全通道(安全通道)會藉由在本機計算機上搜尋受信任的跟證書授權單位存放區來建立受信任的證書頒發機構單位清單。 在 TLS 交握期間,伺服器會將其公開金鑰憑證傳送到用戶端。 公開金鑰憑證的發行者也就是所謂的「憑證授權單位 (CA)」。 客戶端必須確定證書頒發機構單位是用戶端信任的證書頒發機構單位。 這可藉由事先瞭解受信任 CA 的公鑰來達成。 當 Schannel 偵測到未受信任證書頒發機構單位所簽發的憑證時,例如在前兩種情況下,您會收到徵兆區段中所列的錯誤訊息。

解決方法

如果您刻意使用來自非信任授權單位的憑證或自我簽署憑證來加密與 SQL Server 的連線,您可以使用下列其中一個選項:

針對案例 1,將證書頒發機構單位新增至起始加密連線的用戶端電腦上受信任的跟證書授權單位存放區。 若要這樣做,請完成匯出 伺服器證書 ,並在 該順序的後續幾節所列的用戶端計算機 程式上安裝跟證書授權單位 (CA)。

匯出伺服器證書

此範例使用名為 caCert.cer 的檔案作為憑證檔案。 您必須從伺服器取得此憑證檔案。 下列步驟說明如何將伺服器憑證匯出到檔案:

  1. 按兩下 [ 開始 ],然後按兩下 [執行],然後輸入 MMC。 (MMC 是 Microsoft Management Console 的縮寫字)。

  2. 在 MMC 中,開啟 [ 憑證]。

  3. 依序展開 [個人] 和 [憑證]。

  4. 以滑鼠右鍵按下伺服器證書,然後選取 [所有工作匯出>]。

  5. 按兩下 [下一步],將 [憑證導出精靈] 的歡迎對話框移過。

  6. 確認 [ 否],不要匯出私鑰 已選取,然後選取 [ 下一步]。

  7. 請確定 DER 編碼的二進位 X.509 (。CER)Base-64 編碼 X.509 (.已選取 CER, 然後按 [ 下一步]。

  8. 輸入匯出檔案名稱。

  9. [下一步],然後按下 [ 完成 ] 以導出憑證。

在用戶端電腦安裝跟憑證授權單位 (CA)

  1. 在用戶端計算機上啟動 MMC 的憑證嵌入式管理單元,然後新增 [憑證] 嵌入式管理單元。

  2. 在 [ 憑證嵌入式 管理單元] 對話框中,選取 [ 計算機 帳戶],然後選取 [ 下一步]。

  3. 在 [選取計算機] 窗格中,選取 [本機計算機:[此控制台執行的計算機],然後選取 [完成]。

  4. 選擇 [ 確定 ] 以關閉 [ 新增或移除嵌入式管理單元 ] 對話框。

  5. 在 MMC 的左窗格中,展開 [ 憑證][本機計算機] 節點。

  6. 展開 [ 受信任的跟證書授權單位] 節點,以滑鼠右鍵按兩下 [憑證 ] 子資料夾,選取 [所有工作],然後選取 [ 匯入]。

  7. 在 [憑證匯入精靈] [歡迎] 頁面上,選取 [下一步]。

  8. 在 [要匯入的檔案] 頁面上,選取 [流覽]。

  9. 流覽至caCert.cer憑證檔案的位置,選取檔案,然後選取 [開啟]。

  10. 在 [要匯入的檔案] 頁面上,選取 [下一步]。

  11. 在 [ 證書存儲] 頁面上,接受預設選取專案,然後選取 [ 下一步]。

  12. 在 [ 正在完成憑證匯入精靈] 頁面上,選取 [ 完成]。

針對案例 1 和 2,請在用戶端應用程式中將 [信任伺服器證書] 設定設定true

如需如何執行這項操作的詳細資訊,請參閱下列主題:

注意

如果您要使用 SQL Server Management Studio 連線到 SQL Server,請選取 [連線到伺服器] 視窗中的 [選項] 索引標籤,然後選取 [信任伺服器證書] 選項。

注意: 使用自我簽署憑證加密的 SSL 連線不提供強式安全性。 它們容易受到 man-in-the-middle 攻擊。 您不應該依賴在生產環境中或連線到因特網的伺服器中使用自我簽署憑證的 SSL。

如果本文前幾節所討論的設定非預期,您可以使用下列其中一個選項來解決此問題:

  • 根據啟用 資料庫引擎 加密連線中的程式,設定資料庫引擎以使用加密。

  • 如果不需要加密:

    • 停用用戶端應用程式中的加密設定(如果有的話)。

    • 使用 SQL Server 組態管理員停用伺服器端加密。 如需如何執行這項操作的詳細資訊,請參閱 設定伺服器