次の方法で共有


SQL Serverサービスは、Secure Sockets Layer 証明書を使用するようにインスタンスを構成した後で開始できません

この記事は、Microsoft Enhanced Cryptographic Provider 1.0 を使用する SSL 証明書を構成した後に発生する問題を解決するのに役立ちます。

元の製品バージョン: SQL Server
元の KB 番号: 928779

現象

このシナリオでは、SSL 証明書を使用するように SQL Server のインスタンスを構成します。 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 サーバーで自己署名証明書を生成するための証明書は指定しないでください。 これを行うには、SQL Server 構成マネージャーの [証明書] ボックスを空白のままにします。

    詳細については、次のサイトを参照してください。

  • SQL Server証明書に RSA チャネル暗号化プロバイダーを使用する証明書を使用します。

  • 証明書を構成するには、SQL Server 構成マネージャーを使用します。 SQL Server 2019 以降では、SQL Configuration Managerを使用して、SQL Server インスタンスにインストールされている証明書を表示および検証し、期限切れやその他のタスクに近い証明書を特定できます。 詳細については、「証明書の管理 (SQL Server 構成マネージャー)」を参照してください。

詳細

拡張暗号化プロバイダー 1.0 を使用する SSL 証明書は、クライアント証明書に使用できます。 ただし、証明書はサーバー証明書としては適しません。 証明書のプロバイダーを確認するには、コマンド プロンプトで コマンドを実行します。 certutil -v -store my

[現象] セクションに次のエラー メッセージ 記載されています。

Date Time Server TDSSNIClient の初期化に失敗し、エラー 0x80092004、状態コード0x80。

このエラー メッセージでは、 エラー状態0x80 は、SSL 証明書に問題があることを示します。 さらに、 0x80092004 は、 CRYPT_E_NOT_FOUNDに変換されるセキュリティ サポート プロバイダー インターフェイス (SSPI) エラー コードです。