将实例配置为使用安全套接字层证书后,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 配置管理器。

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

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

  • 使用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