将实例配置为使用安全套接字层证书后,SQL Server服务无法启动

本文可帮助你解决配置使用 Microsoft 增强加密提供程序 1.0 的 SSL 证书后出现的问题。

原始产品版本:SQL Server
原始 KB 编号: 928779

症状

在此方案中,将 SQL Server 实例配置为使用 SSL 证书。 SSL 证书使用增强型加密提供程序 1.0。

尝试在此方案中启动 SQL Server 服务时,以下错误消息将写入 SQL Server Errorlog 文件:

Error: 26014, Severity: 16, State: 1.
Unable to load user-specified certificate [Cert Hash(sha1) "%hs"]. 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.

Error: 17182, Severity: 16, State: 1.
TDSSNIClient initialization failed with error 0x80092004, status code 0x80. Reason: Unable to initialize SSL support. Cannot find object or property.

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.

原因

出现此问题的原因是无法使用具有增强加密提供程序版本 1.0 的证书作为服务器证书。

解决方案

若要解决此问题,请使用以下任一方法:

  • 不要指定任何证书,让 SQL Server 生成自签名证书。 为此,请将SQL Server 配置管理器中的“证书”框留空。

    有关详细信息,请访问以下网站:

  • 使用对SQL Server证书使用 RSA 通道加密提供程序的证书。

  • 使用 SQL Server 配置管理器 配置证书。 从 SQL Server 2019 开始,可以使用 SQL Configuration Manager查看和验证安装在 SQL Server 实例中的证书,确定哪些证书可能即将过期和其他任务。 有关详细信息,请参阅证书管理 (SQL Server 配置管理器)

更多信息

使用增强加密提供程序 1.0 的 SSL 证书可用于客户端证书。 但是,证书不适合用作服务器证书。 若要确定证书的提供程序,请在命令提示符处运行命令: certutil -v -store my

症状部分提到了以下错误消息:

日期时间服务器 TDSSNIClient 初始化失败,0x80092004错误,状态代码0x80。

在此错误消息中, 错误状态0x80 指示 SSL 证书存在问题。 此外, 0x80092004 是安全支持提供程序接口 (SSPI) 错误代码,可转换为 CRYPT_E_NOT_FOUND