Sql-Server

SQL Server 服務因“壞”而關閉?SSL 證書

  • September 24, 2020

今天早上發現在 Win2012 上執行的 SQL Server 2012 服務已自行關閉。當我以伺服器管理員身份登錄並嘗試訪問 SSMS 時,輸入憑據後出現“傳輸”錯誤。在檢查 Windows 服務時,SQL Server 和代理均已停止。我試圖啟動它們,但出現超時錯誤。

SQL 事件日誌包含以下條目:

伺服器無法載入啟動 SSL 連接所需的證書。它返回以下錯誤:0x8009030d。檢查證書以確保它們有效。

Windows 事件日誌包含以下條目:

日誌名稱:應用程序

來源:MSSQLSERVER

日期:14/03/2013 09:01:40

說明:無法載入使用者指定的證書

$$ Cert Hash(sha1) “A1CF6EE1C352B7A185950EB400013269759C24BD” $$. 伺服器將不接受連接。您應該驗證證書是否已正確安裝。請參閱聯機叢書中的“配置證書以供 SSL 使用”。 說明:TDSSNIClient 初始化失敗,錯誤為 0x80092004,狀態碼 0x80。原因:無法初始化 SSL 支持。找不到對像或屬性。

說明:TDSSNIClient 初始化失敗,錯誤為 0x80092004,狀態碼 0x1。原因:初始化因基礎結構錯誤而失敗。檢查以前的錯誤。找不到對像或屬性。

描述:由於網路庫中存在內部錯誤,無法啟動網路庫。要確定原因,請查看錯誤日誌中緊接此錯誤之前的錯誤。

說明:SQL Server 無法生成 FRunCommunicationsManager 執行緒。檢查 SQL Server 錯誤日誌和 Windows 事件日誌以獲取有關可能的相關問題的資訊。

以下過程解決了該問題:

  1. 開始 > SQL Server 配置管理器
  2. SQL Server 網路配置 > MSSQLSERVER 協議(屬性)
  3. 取消選中正常 > 強制加密
  4. 開始 > 服務 > 啟動 MSSQLSERVER 服務

更新:

以上僅解決了問題,直到下一次重新啟動,它再次發生。顯然 SSL 證書需要 SQL2012 讀取的權限,但我不敢繼續重啟,直到這個問題得到修復,所以現在通過 RDC 而不是通過 SSL 的 SSMS 訪問。

有一些應用程序可以更改機器密鑰集容器文件夾上的 ACL。發生這種情況時,合法的密鑰集使用者將失去對這些密鑰集的訪問權。請參閱KB 278381:MachineKeys 文件夾的預設權限以獲取正確的權限集。

如果您需要絕對確認,請參閱BUG:當 SQL Server 2005 在網路服務帳戶下執行時,您無法使用證書啟用加密以獲得“解決方法”(它涉及編譯將正確重置 ACL 的 C++ 應用程序……) . 但是您可以根據提到的 KB278381 簡單地設置 ACL,看看問題是否消失。

更多相關知識庫:

我還沒有找到哪個應用程序更改了 ACL。我的錢花在了一些防病毒應用程序上。不要問我是怎麼知道所有這些隨機的不同資訊的……

我使用了這裡提到的解決方案。它對我有用。

  1. 檢查 SQL Server 服務帳戶名稱。
  2. 檢查並驗證證書名稱。(在 SQL Server 配置管理器 –> SQL Server 網路配置 –> MSSQLSERVER 的協議 –> 右鍵點擊此處並轉到屬性 –> 在“證書”選項卡中,您可以看到證書名稱。)
  3. 轉到“執行”,輸入“MMC”,然後按“Enter”。
  4. 轉到“文件”-> 添加/刪除管理單元。
  5. 選擇“證書”並點擊“添加”按鈕。選擇適當的選項(從“我的使用者帳戶/服務帳戶/電腦帳戶”中)。
  6. 點擊“添加或刪除管理單元”視窗螢幕上的“確定”按鈕。
  7. 在“Console1”視窗中,轉到“Console Root”選項。
  8. 展開“證書”–> 人員–> 證書。

在這裡,您將看到證書列表。

  1. 轉到證書(在步驟 2 中配置)
  2. 右鍵點擊它並轉到“所有任務”-> 管理私鑰…
  3. 點擊“添加”按鈕並在此處添加 SQL 服務帳戶(從步驟 1 開始)。授予此帳戶的所有權限。
  4. 現在,嘗試啟動 SQL 服務。

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