適用対象: SQL Server
元の KB 番号: 3135244
まとめ
この記事では、Microsoft SQL Serverの TLS 1.2 サポートについて説明します。 TLS 1.2 サーバー側を有効にするSQL Server ビルド、TLS 1.2 をサポートするクライアント ドライバーとプロバイダー、SQL Server機能が依存する .NET Framework の更新プログラム、および TLS 1.2 が必要だがコンポーネントが最新でない場合に発生する可能性がある最も一般的なエラーの一覧を示します。 SQL Server 2016、SQL Server 2017、SQL Server 2019、SQL Server 2022 では TLS 1.2 がネイティブでサポートされており、個別の更新プログラムは必要ありません。 メインストリーム 以外のバージョン (SQL Server 2008、2008 R2、2012、および 2014) では、次の表に示す更新プログラムが必要です。
Secure Sockets Layer (SSL) 以前のバージョンのトランスポート層セキュリティ (TLS) には、既知の脆弱性が存在します。 セキュリティで保護された通信には、TLS 1.2 (またはサポートされている場合は TLS 1.3) を使用します。 現在のWindows クライアントおよびWindows Server リリースでは、TLS 1.0 と TLS 1.1 が既定で無効になっているため、クライアントコンポーネントとサーバーコンポーネントは接続するために TLS 1.2 以降をサポートする必要があります。
重要
Microsoft TDS 実装の既知の脆弱性は存在しません。これは、SQL Server クライアントとSQL Server データベース エンジンの間で使用されるプロトコルです。 TLS 1.0 の Schannel 実装の背景については、2015 年 11 月 24 日のWindows セキュリティ アドバイザリを参照してください。
この更新プログラムが必要かどうかを確認する
次の表を使用して、現在のバージョンの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 を使用して、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 用にリリースされた最後の CU (CU10 - KB4025925、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 (CU16 - KB3205054 用にリリースされた最後の CU をインストールします。これには、TLS 1.2 のサポートと現在までにリリースされたすべての修正プログラムが含まれます)。 必要に応じて、CU1 は Windows Update Catalog で使用できます。 注: TLS 1.2 のサポートは、 2012 SP3 および 2012 SP4 でも利用できます。 |
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ドライバーとプロバイダー全体の TLS 1.2 のサポートをまとめたものです。
| ドライバー | TLS 1.2 のサポート | 注記 |
|---|---|---|
| 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 ではサポートされていません。 |
TLS 1.2 を使用するためにSQL Serverに必要なその他の修正
次の.NET修正プログラムロールアップをインストールして、.NETエンドポイントに依存するSQL Server機能で TLS 1.2 を使用できるようにします。 たとえば、Web サービス タスクなどの データベース メール および 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 のサポート |
よく寄せられる質問
SQL Server 2016 以降のバージョンでは TLS 1.1 がサポートされていますか?
SQL Server 2016、Windows SQL Server 2017、Windows SQL Server 2019、および SQL Server 2022 では TLS 1.0 から TLS 1.2 がサポートされます。 クライアントが実際に使用する TLS バージョンは、基になるWindowsオペレーティング システムが有効にしている内容によって異なります。 現在のWindows リリースでは、TLS 1.0 と TLS 1.1 は既定で無効になっています。 TLS 1.2 (またはそれ以降) のみを許可する場合は、Schannel で古いプロトコルを無効にします。
SQL Server 2019 では、TLS 1.0 または 1.1 を使用する接続、または 1.2 のみを使用する接続が許可されますか?
SQL Server 2019 では、2016 年および 2017 SQL Server SQL Serverと同じレベルの TLS サポートがあります。 SQL Server 2019 RTM には TLS 1.2 のサポートが付属しており、有効にするために他の更新プログラムや修正プログラムは必要ありません。 オペレーティング システムの Schannel 設定は、クライアントが実際に使用できる TLS バージョンを制御します。
TDS は既知の脆弱性の影響を受けるのですか?
Microsoft TDS の実装に既知の脆弱性は存在しません。 複数の標準適用組織では、暗号化された通信チャネルに TLS 1.2 の使用が義務付けられているため、Microsoftは、広範なSQL Serverインストール ベースに対する TLS 1.2 のサポートをリリースしています。
Microsoft は 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 更新プログラムは、サーバー上で唯一有効なプロトコルが 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 Registry の展開ポリシーを実装する場合は、前述のレジストリ キーをポリシーに追加します。
さらに、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
既知の問題
TLS 1.2 修正プログラムを適用した後、SSMS、レポート サーバー、およびレポート マネージャーが接続できない
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の更新プログラムは、
Reporting Services Configuration Manager のログイン前ハンドシェイクが失敗する
Reporting Services Configuration Managerは、TLS 1.2 をサポートするバージョンにクライアント プロバイダーを更新した後でも、次のエラー メッセージを報告します。
サーバーに接続できませんでした:サーバーへの接続が正常に確立されましたが、ログイン前ハンドシェイク中にエラーが発生しました。
この問題を解決するには、Reporting Services Configuration Managerをホストするシステムに次のレジストリ キーを手動で作成します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client: "Enabled"=dword:00000001
可用性グループ、データベース ミラーリング、または Service Broker の暗号化されたエンドポイント通信が失敗する
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 との暗号化されたエンドポイント通信が失敗するを参照してください。
TLS 1.2 が有効になっている SQL Server 2012 または 2014 をインストールするときのエラー
TLS 1.2 が有効になっているサーバーに SQL Server 2012 または SQL Server 2014 をインストールしようとすると、さまざまなエラーが発生します。
詳細については、「 FIX: TLS 1.2 が有効になっているサーバーに SQL Server 2012 または SQL Server 2014 をインストールするときにエラーが発生する」を参照してください。
データベース ミラーリングまたは可用性グループの暗号化された接続が MD5 証明書で失敗する
TLS 1.2 以外の他のすべてのプロトコルを無効にした後に証明書を使用する場合、データベース ミラーリングまたは可用性グループとの暗号化された接続は機能しません。 次のエラー メッセージのいずれかまたは両方が表示される場合があります。
次のようなエラー メッセージが 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.'
次のようなエラー メッセージが 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 ハッシュ アルゴリズムを使用した通信が失敗するを参照してください。
SQL Server 2008 および 2008 R2 での断続的なSQL Server サービス終了
次の 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 |
データベース メールが TLS 1.2 で動作しない
データベース メール次のエラーで失敗します。
Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseException: メール構成情報をデータベースから読み取れませんでした。 メール セッションを開始できません。
詳細については、「
TLS 1.2 が有効になった後、SCCM がSQL Serverに接続できない
SQL Server で TLS 1.2 プロトコルが有効になった後、System Center Configuration Manager (SCCM) は SQL Server に接続できません。 このような場合は、次のエラー メッセージが表示されます。
TCP プロバイダー: 既存の接続がリモート ホストによって強制的に切断された
この問題は、SCCM が修正プログラムのない SQL Server Native 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)>