Hi All,
Recently I faced an issue while trying to update the certificate used for SQL server connection encryption. When I updated the thumbprint value of certificate in following registry key and restarted SQL services I got below error.
Registry Key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.x\MSSQLServer\SuperSocketNetLib\Certificate
Error Message:
Error: 17182, Severity: 16, State: 1.
TDSSNIClient initialization failed with error 0xd, status code 0x38. Reason: An error occurred while obtaining or using the certificate for SSL. Check settings in Configuration Manager. The data is invalid.
Error: 17182, Severity: 16, State: 1.
TDSSNIClient initialization failed with error 0xd, status code 0x1. Reason: Initialization failed with an infrastructure error. Check for previous errors. The data is invalid.
Error: 17826, Severity: 18, State: 3.
Could not start the network library because of an internal error in the network library. To determine the cause, review the errors immediately preceding this one in the error log.
Error: 17120, Severity: 16, State: 1.
SQL Server could not spawn FRunCommunicationsManager thread. Check the SQL Server error log and the Windows event logs for information about possible related problems.
I checked and verified that SQL server service account was having read permissions on the certificate and there were no space or extra character while pasting the thumbprint value of the certificate.
On search through internet, I came through several articles for this error but below MS article worked for me.
When I followed the resolution section mentioned in above article and copied the thumbprint value from text file generated as output of certutil command “certutil -store my > cert.txt” , and pasted it in registry key; SQL services came online on start.
Other articles which may be helpful in this error are
Happy learning !!