I recently had an issue where a 2019 SQL Server service would not start. It advised to look at the application event log for more details.
I found an event “Unable to find the user-specified certificate [Cert Hash(sha1) “######################################”] in the certificate store of the local computer. Please verify that certificate exists.” followed by another saying “Unable to load user-specified certificate [Cert Hash(sha1) “######################################”]. The server will not accept a connection. You should verify that the certificate is correctly installed. See “Configuring Certificate for Use by SSL” in Books Online.” followed by a few other messages basically saying something is wrong with the SSL certificate it was using to try start the SQL service.
After a little googling I found a solution that worked for me which was a relatively easy fix.
First thing is to find the registry key in question that stores the certificate thumbprint
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.<Version>\InstanceName\MSSQLServer\SuperSocketNetLib\Certificate
If you are not using a certificate, then you can rename “Certificate” to “Certificate_old” then create a new String Value entry (REZ_SZ) called “Certificate” with an empty data value.
Once this has been done go ahead and try start the SQL service.
If you are using certificate, then it’s best not to play with that key. The other possible reason for such an error while using a certificate is that the SQL Server Service account doesn’t have full permission on Certificate private key. To fix this issue, you need to find the certificate in right-click on the certificate and in manage private key, grant full permission to SQL Server service account.
Credit goes to Pinal Dave over at https://blogs.SQLAuthority.com for this workaround.