Microsoft SQL Serverの TLS 1.2 サポート

適用対象: SQL Server
元の KB 番号: 3135244

概要

この記事では、Windows、SQL Server 2016、SQL Server SQL Server 2014、SQL Server 2012、SQL Server 2008、SQL Server 2008 R2 で TLS 1.2 サポートを有効にするための Microsoft リリースの更新プログラムについて説明します。 この記事では、サポートされているクライアント プロバイダーの一覧も示します。 SQL Server 2016、SQL Server 2017、SQL Server 2019 では、更新プログラムを必要とせずに TLS 1.2 がサポートされます。

Secure Sockets Layer (SSL) および以前のバージョンのトランスポート層セキュリティ (TLS) に対して、いくつかの既知の脆弱性が報告されています。 セキュリティで保護された通信のために TLS 1.2 にアップグレードすることをお勧めします。

重要

Microsoft TDS の実装に関する既知の脆弱性は報告されていません。 これは、SQL Server クライアントとSQL Server データベース エンジンの間で使用される通信プロトコルです。 TLS 1.0 の Microsoft Schannel 実装 (この記事の公開日時点で Microsoft に報告されている既知の脆弱性に関する) は、Windows セキュリティ状態更新プログラムの TLS 1.0 の Schannel 実装に関する記事にまとめられています。2015 年 11 月 24 日。

この更新プログラムが必要かどうかを確認する方法

次の表を使用して、現在のバージョンのSQL Serverが既に TLS 1.2 をサポートしているかどうか、または TLS 1.2 のサポートを有効にするために更新プログラムをダウンロードする必要があるかどうかを判断します。 表のダウンロード リンクを使用して、環境に適用可能なサーバー更新プログラムを取得します。

注:

この表に記載されているビルドより後のビルドでも、TLS 1.2 がサポートされます。

リリースSQL Server TLS 1.2 をサポートした初期ビルド/リリース TLS 1.2 がサポートされている現在の更新プログラム 追加情報
SQL Server 2014 SP1 CU 12.0.4439.1

SP1 CU5
KB3130926 - SQL Server 2014 SP1 の累積的な更新プログラム 5

: KB3130926 は、TLS 1.2 のサポートと現在までにリリースされたすべての修正プログラムを含む、2014 SP1 (CU13 - KB4019099) 用に生成された最後の CU をインストールします。 必要に応じて、CU5 は Windows Update カタログで使用できます。

: TLS 1.2 のサポートは、 2014 SP2 および 2014 SP3 でも使用できます。
KB3052404 - 修正: トランスポート層セキュリティ プロトコル バージョン 1.2 を使用して、2014 または SQL Server 2012 SQL Server実行されているサーバーに接続することはできません
SQL Server 2014 SP1 GDR 12.0.4219.0

SP1 GDR TLS 1.2 更新プログラム
2014 SP1 GDR の TLS 1.2 サポートは、最新の累積的な GDR 更新プログラム KB4019091で入手できます。

: TLS 1.2 のサポートは、 2014 SP2 および 2014 SP3 でも使用できます。
SQL Server 2014 RTM CU 12.0.2564.0

RTM CU12
KB3130923 - SQL Server 2014 の累積的な更新プログラム 12

: KB3130923は、TLS 1.2 のサポートと現在までにリリースされたすべての修正プログラムを含む、2014 RTM (CU14 - KB3158271 ) 用にリリースされた最後の CU をインストールします。 必要に応じて、CU12 は Windows Update カタログで使用できます。

: TLS 1.2 のサポートは、 2014 SP2 および 2014 SP3 でも使用できます。
KB3052404 - 修正: トランスポート層セキュリティ プロトコル バージョン 1.2 を使用して、2014 または SQL Server 2012 SQL Server実行されているサーバーに接続することはできません
SQL Server 2014 RTM GDR 12.0.2271.0

RTM GDR TLS 1.2 更新プログラム
SQL 2014 RTM の TLS サポートは、現在、2014 SP2 と 2014 SP3 をインストールすることによってのみ使用できます。
SQL Server 2012 SP3 GDR 11.0.6216.27

SP3 GDR TLS 1.2 更新プログラム
SQL Server 2012 SP3 GDR のセキュリティ更新プログラムの説明: 2018 年 1 月 16 日

: TLS 1.2 のサポートは 、2012 SP4 でも使用できます。
SQL Server 2012 SP3 CU 11.0.6518.0

SP1 CU3
KB3123299 - SQL Server 2012 SP3 の累積的な更新プログラム 1

: KB3123299では、2012 SP3 用にリリースされた最後の CU (CU10 - KB4025925がインストールされます。これには、TLS 1.2 のサポートと現在までにリリースされたすべての修正プログラムが含まれます)。 必要に応じて、CU1 はWindows Update カタログで使用できます。

: TLS 1.2 のサポートは 、2012 SP4 でも使用できます。
KB3052404 - 修正: トランスポート層セキュリティ プロトコル バージョン 1.2 を使用して、2014 または SQL Server 2012 SQL Server実行されているサーバーに接続することはできません
SQL Server 2012 SP2 GDR 11.0.5352.0

SP2 GDR TLS 1.2 更新プログラム
2012 SP2 GDR の TLS 1.2 サポートは、最新の累積的な GDR 更新プログラム ( KB3194719) で入手できます。

TLS 1.2 のサポートは、 2012 SP3 および 2012 SP4 でも利用できます。
SQL Server 2012 SP2 CU 11.0.5644.2

SP2 CU10
KB3120313 - SQL Server 2012 SP2 の累積的な更新プログラム 10

: KB3120313では、2012 SP2 用にリリースされた最後の CU (CU16 - KB3205054がインストールされます。これには、TLS 1.2 のサポートと現在までにリリースされたすべての修正プログラムが含まれます)。 必要に応じて、CU1 はWindows Update カタログで使用できます。 : TLS 1.2 のサポートは、 2012 SP3 および 2012 SP4 でも使用できます。
KB3052404 - 修正: トランスポート層セキュリティ プロトコル バージョン 1.2 を使用して、2014 または SQL Server 2012 SQL Server実行されているサーバーに接続することはできません
SQL Server 2008 R2 SP3 (x86/x64 のみ) 10.50.6542.0

SP2 TLS 1.2 更新プログラム
TLS 1.2 のサポートは、SQL Server 2008 R2 SP3 - KB4057113の最新の累積的な更新プログラム利用できます。
SQL Server 2008 R2 SP2 GDR (IA-64 のみ) 10.50.4047.0

SP2 TLS 1.2 更新プログラム
SQL Server 2008 R2 SP2 GDR (IA-64) TLS 1.2 Updates
SQL Server 2008 R2 SP2 CU (IA-64 のみ) 10.50.4344.0

SP2 TLS 1.2 更新プログラム
SQL Server 2008 R2 SP2 GDR (IA-64) TLS 1.2 Updates
SQL Server 2008 SP4 (x86/x64 のみ) 10.0.6547.0

SP4 TLS 1.2 更新プログラム
TLS 1.2 のサポートは、SQL Server 2008 SP4 - KB4057114(x86/x64 のみ) の最新の累積的な更新プログラムで利用できます。
SQL Server 2008 SP3 GDR (IA-64 のみ) 10.0.5545.0

SP3 TLS 1.2 更新プログラム
SQL Server 2008 SP3 GDR (IA-64) TLS 1.2 Updates
SQL Server 2008 SP3 CU (IA-64 のみ) 10.0.5896.0

SP3 TLS 1.2 更新プログラム
SQL Server 2008 SP3 CU (IA-64) TLS 1.2 Updates

クライアント コンポーネントのダウンロード

次の表を使用して、環境に適用可能なクライアント コンポーネントとドライバー更新プログラムをダウンロードします。

クライアント コンポーネント/ドライバー TLS 1.2 サポートを使用したUpdates
SQL Server Native Client 10.0 for SQL Server 2008/2008 R2 (x86/x64/IA64) Microsoft SQL Server 2008 および SQL Server 2008 R2 Native Client
SQL Server Native Client 11.0 for SQL Server 2012/2014 (x86/x64) Microsoft SQL Server 2012 ネイティブ クライアント - QFE
MDAC クライアント コンポーネント (Sqlsrv32.dll と Sqloledb.dll) Windows 10 Version 1809のサービス スタック更新プログラム: 2020 年 11 月 10 日

SQL SERVERで TLS 1.2 を使用するために必要な追加の修正

次の .NET 修正プログラム ロールアップをインストールして、データベース メールなどのSQL Server機能と、TLS 1.2 を使用するために Web サービス タスクのような TLS 1.2 のサポートを必要とする .NET エンドポイントを使用する特定の SSIS コンポーネントを有効にする必要があります。

オペレーティング システム .NET Framework のバージョン TLS 1.2 サポートを使用したUpdates
Windows 7 Service Pack 1、Windows 2008 R2 Service Pack 1 3.5.1 .NET Framework バージョン 3.5.1 に含まれる TLS v1.2 のサポート
Windows 8 RTM、Windows 2012 RTM 3.5 .NET Framework バージョン 3.5 に含まれる TLS v1.2 のサポート
Windows 8.1、Windows 2012 R2 SP1 3.5 SP1 Windows 8.1 および Windows Server 2012 R2 の.NET Framework バージョン 3.5 SP1 に含まれる TLS v1.2 のサポート

よく寄せられる質問

  • SQL SERVER 2016 以降のバージョンでは TLS 1.1 がサポートされていますか?

    はい。 SQL Server 2016、SQL Server 2017 on Windows、および Windows バージョンのSQL Server 2019 には、TLS 1.0 から TLS 1.2 のサポートが付属しています。 クライアントとサーバー間の通信に TLS 1.2 のみを使用する場合は、TLS 1.0 と 1.1 を無効にする必要があります。

  • SQL Server 2019 では、TLS 1.0 または 1.1、または 1.2 のみを使用した接続が許可されますか?

    SQL Server 2019 では、SQL Server 2016 および SQL Server 2017 と同じレベルのサポートがあり、SQL Server 2019 では以前のバージョンの TLS がサポートされています。 SQL Server 2019 RTM は TLS 1.2 サポートに付属しており、TLS 1.2 のサポートを有効にするために他の更新プログラムや修正プログラムは必要ありません。

  • TDS は既知の脆弱性の影響を受けるのですか?

    Microsoft TDS の実装に関する既知の脆弱性は報告されていません。 複数の標準適用組織が暗号化された通信チャネルに TLS 1.2 の使用を義務付けています。Microsoft は、広範なSQL Serverインストール ベースに対する TLS 1.2 のサポートをリリースしています。

  • TLS 1.2 更新プログラムはどのようにして顧客に配布されますか?

    この記事では、TLS 1.2 をサポートする適切なサーバーおよびクライアント更新プログラムのダウンロード リンクを示します。

  • TLS 1.2 は 2005 SQL Serverをサポートしていますか?

    TLS 1.2 のサポートは、SQL Server 2008 以降のバージョンでのみ提供されます。

  • SSL/TLS を使用していないお客様は、サーバーで SSL 3.0 と TLS 1.0 が無効になっている場合に影響を受けますか?

    はい。 SQL Serverは、セキュリティで保護された通信チャネルが使用されていない場合でも、ログイン中にユーザー名とパスワードを暗号化します。 この更新プログラムは、セキュリティで保護された通信を使用せず、TLS 1.2 を除く他のすべてのプロトコルがサーバーで無効になっているすべてのSQL Server インスタンスに必要です。

  • TLS 1.2 をサポートする Windows Server のバージョンはどれですか?

    Windows Server 2008 R2 以降のバージョンでは、TLS 1.2 がサポートされています。

  • SQL SERVER通信に TLS 1.2 を有効にする正しいレジストリ設定は何ですか?

    正しいレジストリ設定は次のとおりです。

    • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]
    • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001
    • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001

    これらの設定は、サーバー コンピューターとクライアント コンピューターの両方に必要です。 および EnabledDisabledByDefault設定は、Windows 7 クライアントと Windows Server 2008 R2 サーバーで作成する必要があります。 Windows 8以降のバージョンのクライアント オペレーティング システムまたはサーバー Windows Server 2012 以降のバージョンのサーバー オペレーティング システムでは、TLS 1.2 が既に有効になっている必要があります。 OS リリースに依存しない必要がある Windows レジストリの展開ポリシーを実装する場合は、前述のレジストリ キーをポリシーに追加することをお勧めします。 さらに、SQL Serverでデータベース メールを使用している場合は、次の .NET レジストリ キーも設定する必要があります。

    • [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001
    • [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001
    • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001
    • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001

既知の問題

  • 問題 1

    SQL Server Management Studio (SSMS)、レポート サーバー、およびレポート マネージャーは、SQL Server 2008、2008 R2、2012、または 2014 の修正プログラムを適用した後、データベース エンジンに接続しません。 レポート サーバーとレポート マネージャーが失敗し、次のエラー メッセージが返されます。

    レポート サーバーは、レポート サーバー データベースへの接続を開くことができません。 すべての要求と処理には、データベースへの接続が必要です。 (rsReportServerDatabaseUnavailable)

    この問題は、SSMS、レポート マネージャー、Reporting Services Configuration Manager ADO.NET を使用しており、TLS 1.2 の ADO.NET サポートは.NET Framework 4.6 でのみ使用できるために発生します。 以前のバージョンの.NET Frameworkでは、ADO.NET がクライアントの TLS 1.2 通信をサポートできるように Windows 更新プログラムを適用する必要があります。 以前のバージョンの .NET フレームワークで TLS 1.2 サポートを有効にする Windows 更新プログラムは、「この更新プログラムが必要かどうかを確認する方法 」セクションの表に一覧表示されています。

  • 問題 2

    Reporting Services Configuration Managerは、クライアント プロバイダーが TLS 1.2 をサポートするバージョンに更新された後でも、次のエラー メッセージを報告します。

    サーバーに接続できませんでした: サーバーへの接続が正常に確立されましたが、ログイン前ハンドシェイク中にエラーが発生しました。

    クライアント プロバイダーが TLS 1.2 をサポートするバージョンに更新された後のテスト接続エラーのスクリーンショット。

    この問題を解決するには、Reporting Services Configuration Managerをホストするシステムに次のレジストリ キーを手動で作成します。

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client: "Enabled"=dword:00000001

  • 問題 3

    TLS 1.2 を使用する暗号化されたエンドポイント通信は、SQL Serverで可用性グループ、データベース ミラーリング、または Service Broker に暗号化された通信を使用すると失敗します。 次のようなエラー メッセージが SQL エラー ログに記録されます。

    Connection handshake failed. An OS call failed: (80090331) 0x80090331(The client and server cannot communicate, because they do not possess a common algorithm.). State 56.
    

    この問題の詳細については、「FIX: SQL Serverを使用すると TLS 1.2 との暗号化されたエンドポイント通信が失敗する」を参照してください。

  • 問題 4

    TLS 1.2 が有効になっているサーバーに SQL Server 2012 または SQL Server 2014 をインストールしようとすると、さまざまなエラーが発生します。

    詳細については、「FIX: TLS 1.2 が有効になっているサーバーに SQL Server 2012 または SQL Server 2014 をインストールするときにエラーが発生する」を参照してください。

  • 問題 5

    TLS 1.2 以外のすべてのプロトコルを無効にした後で証明書を使用する場合、データベース ミラーリングまたは可用性グループとの暗号化された接続は機能しません。 次のようなエラー メッセージが、SQL Server エラー ログに記録されます。

    TLS 1.2 以外のすべてのプロトコルを無効にした後で証明書を使用する場合、データベース ミラーリングまたは可用性グループとの暗号化された接続は機能しません。 次のいずれかの現象が発生する場合があります。

    • 症状 1:

      次のようなエラー メッセージが、SQL Server エラー ログに記録されます。

      Connection handshake failed. An OS call failed: (80090331) 0x80090331(The client and server cannot communicate, because they do not possess a common algorithm.). State 58.'
      
    • 症状 2:

      次のようなエラー メッセージが Windows イベント ログに記録されます。

      Log Name:      System
      Source:        Schannel
      Date:          <Date Time>
      Event ID:      36888
      Task Category: None
      Level:         Error
      Keywords:     
      User:          SYSTEM
      Computer:      ------------
      Description:
      A fatal alert was generated and sent to the remote endpoint. This may result in termination of the connection. The TLS protocol defined fatal error code is 40. The Windows SChannel error state is 1205.
      
      Log Name:      System
      Source:        Schannel
      Date:          <Date Time>
      Event ID:      36874
      Task Category: None
      Level:         Error
      Keywords:     
      User:          SYSTEM
      Computer:      -----------
      Description:
      An TLS 1.2 connection request was received from a remote client application, but none of the cipher suites supported by the client application are supported by the server. The SSL connection request has failed.
      

      この問題は、可用性グループとデータベース ミラーリングには、MD5 などの固定長ハッシュ アルゴリズムを使用しない証明書が必要であるために発生します。 固定長ハッシュ アルゴリズムは、TLS 1.2 ではサポートされていません。

    詳細については、「FIX: MD5 ハッシュ アルゴリズムを使用した通信が失敗するSQL Server TLS 1.2 を使用する場合」を参照してください。

  • 問題 6

    次のSQL Serverデータベース エンジンのバージョンは、サポート技術情報の記事3146034で報告されている断続的なサービス終了の問題の影響受けます。 お客様がサービス終了の問題から身を守るために、次の表にSQL Serverバージョンが記載されている場合は、この記事で説明されているSQL Serverの TLS 1.2 更新プログラムをインストールすることをお勧めします。

    リリースSQL Server 影響を受けるバージョン
    SQL Server 2008 R2 SP3 (x86 および x64) 10.50.6537.0
    SQL Server 2008 R2 SP2 GDR (IA-64 のみ) 10.50.4046.0
    SQL Server 2008 R2 SP2 (IA-64 のみ) 10.50.4343.0
    SQL Server 2008 SP4 (x86 および x64) 10.0.6543.0
    SQL Server 2008 SP3 GDR (IA-64 のみ) 10.0.5544.0
    SQL Server 2008 SP3 (IA-64 のみ) 10.0.5894.0
  • 問題 7

    データベース メールは TLS 1.2 では機能しません。 データベース メール次のエラーで失敗します。

    Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseException: メール構成情報をデータベースから読み取れませんでした。 メール セッションを開始できません。

    詳細については、「SQL Serverで TLS 1 を使用するために必要なその他の修正プログラム」を参照してください。

クライアントまたはサーバーで TLS 1.2 更新プログラムが見つからない場合に発生する可能性がある一般的なエラー

問題 1

SQL Serverで TLS 1.2 プロトコルが有効になった後、System Center Configuration Manager (SCCM) はSQL Serverに接続できません。 この状況では、次のエラー メッセージが表示されます。

TCP プロバイダー: リモート ホストによって既存の接続が強制的に閉じられた

この問題は、修正プログラムがないSQL Server Native Client ドライバーを使用SCCM場合に発生する可能性があります。 この問題を解決するには、「クライアント コンポーネントのダウンロード」セクションに記載されているクライアント修正プログラムを ダウンロードしてインストール します。 たとえば、Microsoft® SQL Server ® 2012 ネイティブ クライアント - QFE などです。

次の例に示すように、SCCM ログを表示することで、SQL Serverに接続するために使用しているドライバー SCCMを確認できます。

[SQL Server Native Client 11.0]TCP Provider: An existing connection was forcibly closed by the remote host.~~  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 *** [08001][10054][Microsoft][SQL Server Native Client 11.0]Client unable to establish connection  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 *** Failed to connect to the SQL Server, connection type: SMS ACCESS.  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 INFO: SQL Connection failed. Connection: SMS ACCESS, Type: Secure  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>Native Client 11.0]TCP Provider: An existing connection was forcibly closed by the remote host.~~  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 *** [08001][10054][Microsoft][SQL Server Native Client 11.0]Client unable to establish connection  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 *** Failed to connect to the SQL Server, connection type: SMS ACCESS.  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 INFO: SQL Connection failed. Connection: SMS ACCESS, Type: Secure  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>