none
SSL3.0を無効にした際、MSSQLSERVERサービスが起動しなくなる RRS feed

  • 質問

  • こんにちは。

    ※WindowsServerの方で投稿したのですが、こちらのほうに再投稿させていただきます。

    表題の件で困っています。

    ◆環境

     Windows2008R2 Standard

      ・.netframework4.0

      ・IIS7.5

      ・セキュリティパッチは基本当てている 

     SQLSever2008R2 Enterprise

      ・AES256暗号化

     

    ◆現象

     Windows2008R2 IIS7.5にて構築したサイトに、TLS1.2のみ接続可能としたいです。

     レジストリにて、SSL1.0、2.0、3.0、TLS1.0、1.1、を無効にしました。Enabled=0

     サーバーを起動すると、MSSQLSERVERのサービスが立ち上がらず、立ち上げようとすると

     「サービス固有のエラーコードが、-2146893007」というエラーとなり立ち上がりません。

     また、イベントログには

     「SQLServerはFRunCMスレッドを起動できませんでした。」

     と出てしまいます。

     逆にSSL3.0を有効にすると、問題なくサービスが起動します。

     TLS1.2のみを有効にする方法をご教示いただきたくお願いいたします。 

    2015年5月12日 13:07

回答

  • 手元にWindows server 2008 R2 + SQL Server 2008 R2 の環境がありましたので、私も試してみたところサービスが起動しませんでした。

    SQL Server の ERRORLOG を確認したところ、本来なら

    A self-generated certificate was successfully loaded for encryption.

    となるところが、

    The server could not load the certificate it needs to initiate an SSL connection. It returned the following error: 0x80090331. Check certificates to make sure they are valid.
    Unable to initialize SSL encryption because a valid certificate could not be found, and it is not possible to create a self-signed certificate.
    TDSSNIClient initialization failed with error 0x80090331, status code 0x80. Reason: SSL サポートを初期化できません。 クライアントとサーバーは共通のアルゴリズムを処理していないので、通信できません。
    
    エラー: 17182、重大度: 16、状態: 1。
    TDSSNIClient initialization failed with error 0x80090331, status code 0x1. Reason: 初期化は、インフラストラクチャ エラーが発生して失敗しました。以前に発生したエラーを確認してください。 クライアントとサーバーは共通のアルゴリズムを処理していないので、通信できません。
    
    エラー: 17826、重大度: 18、状態: 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.
    エラー: 17120、重大度: 16、状態: 1。
    SQL Server could not spawn FRunCM thread. Check the SQL Server error log and the Windows event logs for information about possible related problems.
    

    となり、エラーとなっていましたので、内部で使用している自己署名の証明書が TLS 1.2 に対応しておらずエラーとなっているのではと思います。

    Sql server service wont start after disabling TLS 1.0 and SSL 3.0 on windows

    SQL server service won’t start after disabling TLS 1.0 and SSL 3.0

    などを見ていると、OSとしては TLS 1.2 に対応していても、SQL Server としては、TSL 1.0 または SSL 3.0 の対応となり、これがサーバーとして有効になっていないとエラーとなってしまうのではないでしょうか。

    A self-generated certificate was successfully loaded for encryption?によると、こちらは暗号化接続が無効になっていても、内部的な仕組みとして、SQL Server 認証を使用していなくても機能してしまうようで、これを無効にするという方法が見当たりませんでした。

    TLS 1.2 のみを有効にするという方法ではありませんが、情報としてご参考になれば幸いです。

    • 回答の候補に設定 星 睦美 2015年5月19日 7:30
    • 回答としてマーク 星 睦美 2015年5月22日 5:26
    2015年5月15日 3:16
    モデレータ

すべての返信

  • 手元にWindows server 2008 R2 + SQL Server 2008 R2 の環境がありましたので、私も試してみたところサービスが起動しませんでした。

    SQL Server の ERRORLOG を確認したところ、本来なら

    A self-generated certificate was successfully loaded for encryption.

    となるところが、

    The server could not load the certificate it needs to initiate an SSL connection. It returned the following error: 0x80090331. Check certificates to make sure they are valid.
    Unable to initialize SSL encryption because a valid certificate could not be found, and it is not possible to create a self-signed certificate.
    TDSSNIClient initialization failed with error 0x80090331, status code 0x80. Reason: SSL サポートを初期化できません。 クライアントとサーバーは共通のアルゴリズムを処理していないので、通信できません。
    
    エラー: 17182、重大度: 16、状態: 1。
    TDSSNIClient initialization failed with error 0x80090331, status code 0x1. Reason: 初期化は、インフラストラクチャ エラーが発生して失敗しました。以前に発生したエラーを確認してください。 クライアントとサーバーは共通のアルゴリズムを処理していないので、通信できません。
    
    エラー: 17826、重大度: 18、状態: 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.
    エラー: 17120、重大度: 16、状態: 1。
    SQL Server could not spawn FRunCM thread. Check the SQL Server error log and the Windows event logs for information about possible related problems.
    

    となり、エラーとなっていましたので、内部で使用している自己署名の証明書が TLS 1.2 に対応しておらずエラーとなっているのではと思います。

    Sql server service wont start after disabling TLS 1.0 and SSL 3.0 on windows

    SQL server service won’t start after disabling TLS 1.0 and SSL 3.0

    などを見ていると、OSとしては TLS 1.2 に対応していても、SQL Server としては、TSL 1.0 または SSL 3.0 の対応となり、これがサーバーとして有効になっていないとエラーとなってしまうのではないでしょうか。

    A self-generated certificate was successfully loaded for encryption?によると、こちらは暗号化接続が無効になっていても、内部的な仕組みとして、SQL Server 認証を使用していなくても機能してしまうようで、これを無効にするという方法が見当たりませんでした。

    TLS 1.2 のみを有効にするという方法ではありませんが、情報としてご参考になれば幸いです。

    • 回答の候補に設定 星 睦美 2015年5月19日 7:30
    • 回答としてマーク 星 睦美 2015年5月22日 5:26
    2015年5月15日 3:16
    モデレータ
  • Masayuki.Ozawaさん

    ご回答ありがとうございました。

    私もテクニカルサポートセンターへ問い合わせ、Masayuki.Ozawaさんの仰るとおり、SQLServer2008R2ではTLS1.2はサポートされていませんでした。最新の2012でも1.1までは対応しているようですが、1.2は未対応のようです。

    サーバ内での対応はあきらめ、上位レイヤーで対応することとしました。

    2015年6月10日 5:16