Sql-Server

安裝新的 SSL 證書後,我的 MSSQL 伺服器無法再重新啟動

  • January 29, 2022

我使用 pfx 文件安裝了 SSL 證書,獲取雜湊並將其放入 SuperSocketNetLib 的證書密鑰中,我使用 MSSQL 管理工具重新啟動了 MSSQL 伺服器,然後我收到以下錯誤:

The SQL Server (MSSQLSERVER) service terminated with the following service-specific error: 
Cannot find object or property.

A fatal error occurred when attempting to access the TLS server credential private key. The error code returned from the cryptographic module is 0x8009030D. The internal error state is 10001.

SQL Server could not spawn FRunCommunicationsManager thread. Check the SQL Server error log and the operating system error log for information about possible related problems.

我無法重新啟動伺服器。奇怪的是,我去了一個開發伺服器並做了同樣的事情,我沒有收到任何錯誤。所以證書在一台機器上工作,但不是在另一台機器上工作,我能夠通過選中的加密選項進行連接。

要在另一台機器上重新啟動伺服器,我必須使用 SuperSocketNetLib 證書密鑰中的舊證書雜湊,這意味著證書有問題,但是出了什麼問題,為什麼它在其他站點上工作?SSL 和 pfx 文件在其他網站上工作。它是 *.netflix.com 的證書,我能夠使用 pfx 文件和多個網站將它安裝在多個 IIS 伺服器上,例如 Finance.netflix.com、acc.netflix.com。

除了另一個答案中提到的權限…

如果執行 SQL 引擎的服務帳戶不是本地管理員,則需要授予其對證書私鑰的讀取權限。

  • 打開證書管理控制台,或將其作為管理單元添加到新的 MMC 會話。為要管理的證書集選擇本地電腦。
  • 找到有問題的證書。它可能在個人 –> 證書下。右鍵點擊並選擇所有任務 –> 管理私鑰…。
  • 添加 SQL 引擎服務帳戶,為其授予讀取權限。(添加時預設為完全控制,但讀取就足夠了。)
  • (在集群中,您必須在每個節點上執行此操作。)

這似乎是一個權限問題。嘗試查看 SQL Server 服務使用者帳戶是否有權訪問這些內容:

文件夾:C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys

系統資料庫:HKLM\System\CurrentControlSet\Services\WinSock2\Parameters

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