Microsoft SQL Server の TLS 1.2 サポート
適用対象: SQL Server
元の KB 番号: 3135244
はじめに
この記事では、Windows、SQL Server 2016、SQL Server 2014、SQL Server 2012、SQL Server 2008、および SQL Server 2008 R2 で SQL Server 2017 の 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 のサポートを有効にするために更新プログラムをダウンロードする必要があるかどうかを確認します。 表のダウンロード リンクを使用して、環境に適用できるサーバー更新プログラムを取得します。
Note
この表に記載されているビルドより後のビルドでも、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 を使用して、SQL Server 2014 または SQL Server 2012 を実行しているサーバーに接続することはできません |
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 Catalog で使用できます。 注: TLS 1.2 のサポートは、 2014 SP2 および 2014 SP3 でも利用できます。 |
KB3052404 - 修正: トランスポート層セキュリティ プロトコル バージョン 1.2 を使用して、SQL Server 2014 または SQL Server 2012 を実行しているサーバーに接続することはできません |
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 (CU10 - KB4025925 用にリリースされた最後の CU をインストールします。これには、TLS 1.2 のサポートと現在までにリリースされたすべての修正プログラムが含まれます)。 必要に応じて、CU1 は Windows Update Catalog で使用できます。 注: TLS 1.2 のサポートは、 2012 SP4 でも利用できます。 |
KB3052404 - 修正: トランスポート層セキュリティ プロトコル バージョン 1.2 を使用して、SQL Server 2014 または SQL Server 2012 を実行しているサーバーに接続することはできません |
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 ( |
KB3052404 - 修正: トランスポート層セキュリティ プロトコル バージョン 1.2 を使用して、SQL Server 2014 または SQL Server 2012 を実行しているサーバーに接続することはできません |
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 更新プログラム | |
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 更新プログラム | |
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 更新プログラム | |
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 更新プログラム |
クライアント コンポーネントのダウンロード
次の表を使用して、環境に適用できるクライアント コンポーネントとドライバーの更新プログラムをダウンロードします。
クライアント コンポーネント/ドライバー | TLS 1.2 がサポートされている更新プログラム |
---|---|
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 Native Client - QFE |
MDAC クライアント コンポーネント (Sqlsrv32.dllとSqloledb.dll) | Windows 10 バージョン 1809 のサービス スタック更新プログラム: 2020 年 11 月 10 日 |
TLS 1.2 のクライアント ドライバーサポートの概要テーブル
次の表は、SQL Server ドライバーとプロバイダーのサポートをまとめたものです。
Driver | TLS 1.2 のサポート | Note |
---|---|---|
Microsoft ODBC Driver for SQL Server 11 | はい(更新プログラムあり) | SQL Server 2012 または SQL Server 2014 の最新の累積的な更新プログラムをインストールします。 ( の表を参照してください。この更新プログラムが必要かどうかを確認する方法 セクション)。 |
Microsoft ODBC Driver for SQL Server 13 | はい | TLS 1.2 をネイティブでサポートします。 |
Microsoft ODBC Driver for SQL Server 17 | はい | TLS 1.2 をネイティブでサポートします。 |
Microsoft ODBC Driver for SQL Server 18 | はい | TLS 1.2 をネイティブでサポートします。 |
Microsoft OLE DB Driver for SQL Server 19 (MSOLEDBSQL) | はい | TLS 1.2 をネイティブでサポートします。 |
SQL Server Native Client 10 | はい(更新プログラムあり) | SQL Server 2008 または SQL Server 2008 R2 の最新の累積的な更新プログラムをインストールします。 ( の表を参照してください。この更新プログラムが必要かどうかを確認する方法 セクション)。 |
SQL Server Native Client 11 | はい(更新プログラムあり) | SQL Server 2012 または SQL Server 2014 の最新の累積的な更新プログラムをインストールします。 ( の表を参照してください。この更新プログラムが必要かどうかを確認する方法 セクション)。 |
SQL Server ODBC ドライバー (SQLSRV32.DLL) | はい(特定の OS の場合) | Windows Server 2019 と Windows 10 のサポートを追加しました。 以前のバージョンの OS ではサポートされていません。 |
SQL Server OLE DB プロバイダー (SQLOLEDB) | はい(特定の OS の場合) | Windows Server 2019 と Windows 10 のサポートを追加しました。 以前のバージョンの OS ではサポートされていません。 |
SQL Server で TLS 1.2 を使用するために必要な追加の修正
次の .NET 修正プログラム ロールアップをインストールして、データベース メールなどの SQL Server 機能と、TLS 1.2 を使用するために Web サービス タスクなどの TLS 1.2 サポートを必要とする .NET エンドポイントを使用する特定の SSIS コンポーネントを有効にする必要があります。
オペレーティング システム | .NET Framework のバージョン | TLS 1.2 がサポートされている更新プログラム |
---|---|---|
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 のサポート |
よく寄せられる質問
TLS 1.1 は SQL Server 2016 以降のバージョンでサポートされていますか?
はい。 SQL Server 2016、Windows 上の SQL Server 2017、および 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 は SQL Server 2005 をサポートしていますか?
TLS 1.2 のサポートは、SQL Server 2008 以降のバージョンでのみ提供されます。
SSL 3.0 と TLS 1.0 がサーバーで無効になっている場合、SSL/TLS を使用していないお客様は影響を受けますか?
はい。 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
これらの設定は、サーバー コンピューターとクライアント コンピューターの両方に必要です。
DisabledByDefault
とEnabled
の設定は、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 Framework で TLS 1.2 のサポートを有効にする Windows 更新プログラムについては、「 この更新プログラムが必要かどうかを確認する方法 」セクションの表に記載されています。
問題 2
クライアント プロバイダーが TLS 1.2 をサポートするバージョンに更新された後でも、Reporting Services Configuration Manager は次のエラー メッセージを報告します。
サーバーに接続できませんでした:サーバーへの接続が正常に確立されましたが、ログイン前ハンドシェイク中にエラーが発生しました。
この問題を解決するには、Reporting Services 構成マネージャーをホストするシステムで、次のレジストリ キーを手動で作成します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client: "Enabled"=dword:00000001
問題 3
SQL Server で可用性グループ、データベース ミラーリング、または Service Broker に暗号化された通信を使用すると、TLS 1.2 を使用する暗号化されたエンドポイント通信が失敗します。 次のようなエラー メッセージが 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: SQL Server で TLS 1.2 が使用されている場合、MD5 ハッシュ アルゴリズムを使用した通信が失敗するを参照してください。
問題 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 プロバイダー: 既存の接続がリモート ホストによって強制的に切断された
この問題は、SCCM が修正プログラムのない SQL Server Native Client ドライバーを使用している場合に発生する可能性があります。 この問題を解決するには、「 Client コンポーネントのダウンロード 」セクションに記載されているクライアント修正プログラムをダウンロードしてインストールします。 たとえば、 Microsoft® SQL Server® 2012 Native Client - 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)>