暗号化を有効にした後にイベント ID 33566 と SQL Server が起動しない
適用対象: SQL Server
現象
Microsoft SQL Server 構成マネージャー では、サーバー側の証明書をプロビジョニングし、暗号化を有効にします。 ただし、SQL Server サービスは起動せず、次のエラー メッセージが表示されます。
Windows がローカル コンピューターで SQL Server (MSSQLSERVER) を起動できませんでした。 詳細については、システム イベント ログを確認してください。
Microsoft 以外のサービスの場合は、サービス ベンダーに問い合わせて、サービス固有のエラー コード 13 を参照してください。
解決方法
アプリケーション ログを確認し、次のような 2 つのイベント エントリが表示されることを確認します。
Log Name: Application Source: MSSQLSERVER Date: <Datetime> Event ID: 33556 Task Category: Server Level: Error Keywords: Classic User: N/A Computer: <Server name> Description: Invalid character in the thumbprint [Cert Hash(sha1) " \<Cert Hash number"]. Please provide a certificate with a valid thumbprint.
Note
通常、このエラーは、証明書が Configuration Manager を通じてプロビジョニングされていないことを示します。 これは、サムプリント値を次のレジストリ キーに手動でコピーすることによってプロビジョニングされます。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQLServer\SuperSocketNetLib\Certificate
このエラーは、無効な文字がレジストリ値にコピーされた場合に発生します。
この問題を解決するには、次のいずれかのメソッドを使用します。
方法 1: SQL Server 構成マネージャーを使用して証明書をプロビジョニングする
次のレジストリ サブキーから、サム印刷値を手動で削除します。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQLServer\SuperSocketNetLib\Certificate
Configuration Manager を使用して証明書を再プロビジョニングします。
SQL Server サービスを再起動します。
方法 2: 拇印値の無効な文字を修正する
Start>Run を選択し、「mmc」と入力し、MMC コンソールで Certificate スナップインを開きます。
証明書を右クリックし、 Thumbprint 値をテキスト ファイルにコピーします。 拇印の値の前後にスペースが存在しないことを確認します。
次のレジストリ サブキーから Thumbprint 値を手動で削除します。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQLServer\SuperSocketNetLib\Certificate
新しい値を手動で貼り付けるか、テキスト ファイルから取得した値を再入力します。
SQL Server サービスを再起動します。