この記事では、System Center Operations Manager でトランスポート層セキュリティ (TLS) 1.2 を利用できるようにする方法について説明します。
注記
Operations Manager は、オペレーティング システム レベルで構成されたプロトコルを使用します。 たとえば、すべてのプロトコルが有効になっている場合、Operations Manager は、次の順序で 3 つのプロトコルのいずれかを選択します。
- TLS バージョン 1.0
- TLS バージョン 1.1
- TLS バージョン 1.2
次に、Schannel SSP によって、クライアントとサーバーがサポートできる最も優先順位の高い認証プロトコルが選択されます。
Operations Manager で TLS プロトコル バージョン 1.2 を実装するには、次の手順を実行します。
注記
Microsoft OLE DB Driver 18 for SQL Server (推奨) は、Operations Manager 2016 UR9 以降でサポートされています。
SQL Server 2012 Native Client 11.0 または Microsoft OLE DB Driver (x64) をすべての管理サーバーと Web コンソール サーバーにインストールします。
Microsoft ODBC Driver (x64) をすべての管理サーバーと Web コンソール サーバーにインストールします。
TLS 1.2 をサポートする Required SQL Server 更新プログラム をインストールします。
Operations Manager 2016 の更新プログラム ロールアップ 4 をすべてのコンポーネントにインストールします。
すべてのサーバーに、OS バージョンと互換性のある最小限の .NET Framework 4.6 がインストールされていることを確認します。.NET Framework のバージョンと依存関係
- Operations Manager 2016 との互換性がないため、.NET Framework 4.8 をインストールしないでください。
TLS 1.2 のみを使用するように Windows を構成します。
既定では、より高いレベルの暗号化を利用するように .NET Framework を構成します。
インストールされている場合は、監査コレクション サービスを構成します。
Microsoft OLE DB Driver for SQL バージョン 18.7.4 をすべての管理サーバーと Web コンソール サーバーにインストールします。
Microsoft ODBC Driver for SQL バージョン 17.10.6 をすべての管理サーバーと Web コンソール サーバーにインストールします。
TLS 1.2 のみを使用するように Windows を構成します。
既定では、より高いレベルの暗号化を利用するように .NET Framework を構成します。
インストールされている場合は、監査コレクション サービスを構成します。
注記
SQL Server 接続の暗号化を使用する場合は、代わりに次のドライバー バージョンをインストールします。
- Microsoft OLE DB Driver 19: https://aka.ms/downloadmsoledbsql
- Microsoft ODBC Driver 18: https://aka.ms/downloadmsodbcsql
SQL 接続暗号化の構成の詳細については、接続を暗号化するための SQL Server データベース エンジンの構成に関するページを参照してください。
Operations Manager は、TLS 1.2 を有効にするために必要な SHA1 および SHA2 自己署名証明書を生成します。 CA 署名付き証明書が使用されている場合は、証明書が SHA1 または SHA2 であることを確認します。
注記
セキュリティ ポリシーで TLS 1.0 と 1.1 が制限されている場合、セットアップ メディアに TLS 1.2 をサポートするための更新プログラムが含まれていないため、新しい Operations Manager 2016 ロールのインストールは失敗します。 新しいロールの設定を続行するには、システムで TLS 1.0 を有効にし、更新プログラムロールアップ 4を適用してから、システムで TLS 1.0 を再び適用します。
TLS 1.2 プロトコルのみを使用するように Windows オペレーティング システムを構成する
次のいずれかの方法を使用して、TLS 1.2 プロトコルのみを使用するように Windows を構成します。
方法 1: レジストリを手動で変更する
重要
慎重にこのセクションの手順に従います。 レジストリが正しく変更されていない場合は、重大な問題が発生する可能性があります。 変更を行う前に、問題が発生した場合に備え、レジストリをバックアップしてください。
詳細については、「Windows でレジストリをバックアップおよび復元する方法」を参照してください。
システム全体で SChannel プロトコルを変更するには、次の手順を使用します。 TLS 1.2 プロトコルを明示的に有効にすることをお勧めします。
注記
これらのレジストリを変更しても、Kerberos または NTLM プロトコルの使用には影響しません。
ローカルの管理資格情報を持つアカウントを使って、サーバーにログインします。
レジストリ エディターを起動するには、Start を選択し、Run ボックスに「regedit」と入力し、OK を選択します。
次のレジストリ サブキーを見つけます。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols
Protocolsの下にサブキーを作成します。
- SSL 2.0
- SSL 3.0
- TLS 1.0
- TLS 1.1
- TLS 1.2
前に作成した各プロトコル バージョンのサブキーの下に、クライアント と Server サブキーを作成します。 たとえば、TLS 1.0 のサブキーは次のようになります。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server
プロトコルを無効にするには、[サーバー] と [クライアント] の下に次の DWORD 値を作成します。
- 有効 [値 = 0]
- DisabledByDefault [値 = 1]
TLS 1.2 プロトコルを 明示的に有効にするには (既定では有効)、 次のレジストリ キーを作成します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server
次に、 Server および Client の下に次の DWORD 値を作成します。
- Enabled [値 = 1]
- DisabledByDefault [値 = 0]
レジストリ エディターを閉じます。
方法 2: PowerShell を使用してレジストリを変更する
管理者として次の Windows PowerShell スクリプトを実行して、TLS 1.2 プロトコルを使用するように Windows オペレーティング システムを構成します。
$ProtocolList = @("SSL 2.0", "SSL 3.0", "TLS 1.0", "TLS 1.1", "TLS 1.2")
$ProtocolSubKeyList = @("Client", "Server")
$DisabledByDefault = "DisabledByDefault"
$registryPath = "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\"
foreach ($Protocol in $ProtocolList)
{
foreach ($key in $ProtocolSubKeyList)
{
$currentRegPath = $registryPath + $Protocol + "\" + $key
Write-Output "Current Registry Path: `"$currentRegPath`""
if (!(Test-Path $currentRegPath))
{
Write-Output " `'$key`' not found: Creating new Registry Key"
New-Item -Path $currentRegPath -Force | out-Null
}
if ($Protocol -eq "TLS 1.2")
{
Write-Output " Explicitly enable TLS 1.2 (default is enabled)"
New-ItemProperty -Path $currentRegPath -Name $DisabledByDefault -Value "0" -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $currentRegPath -Name 'Enabled' -Value "1" -PropertyType DWORD -Force | Out-Null
}
else
{
Write-Output " Disabling - $Protocol"
New-ItemProperty -Path $currentRegPath -Name $DisabledByDefault -Value "1" -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $currentRegPath -Name 'Enabled' -Value "0" -PropertyType DWORD -Force | Out-Null
}
Write-Output " "
}
}
より高いレベルの暗号化を使用するように .NET Framework を構成する
通常、.NET Framework では、通信に使用する TLS プロトコルをアプリケーションで定義する必要があります。 ただし、Operations Manager のインスタンスでは、使用するプロトコルを .NET Framework システム全体に指示する必要があります。
Operations Manager のすべての前提条件の構成を完了したら、すべての Operations Manager サーバーと任意の Windows エージェントで次の手順を実行します。
重要
慎重にこのセクションの手順に従います。 レジストリが正しく変更されていない場合は、重大な問題が発生する可能性があります。 変更を行う前に、問題が発生した場合に備え、レジストリをバックアップしてください。
詳細については、「Windows でレジストリをバックアップおよび復元する方法」を参照してください。
Windows Server 2012/2012 R2 の前提条件
UNIX/LINUX 監視に TLS 1.2 over HTTP を使用するには、Windows Server 2012/2012 R2 で追加の変更が必要です。 Windows の WinHTTP で TLS 1.2 を既定のセキュリティ プロトコルとして許可または有効にするには、Windows の WinHTTP で TLS 1.1 と TLS 1.2 を既定のセキュリティで保護されたプロトコルとして有効にするには、Update に従って次の変更を行う必要があります。
方法 1: レジストリを手動で変更する
- レジストリ エディターを開きます
- 次のレジストリ サブキーを見つけます。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727
- 次の DWORD 値ペアを作成します。
- SchUseStrongCrypto [値 = 1]
- SystemDefaultTlsVersions [値 = 1]
- 次の DWORD 値ペアを作成します。
- 次のレジストリ サブキーを見つけます。
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727
- 次の DWORD 値ペアを作成します。
- SchUseStrongCrypto [値 = 1]
- SystemDefaultTlsVersions [値 = 1]
- 次の DWORD 値ペアを作成します。
- 次のレジストリ サブキーを見つけます。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319
- 次の DWORD 値ペアを作成します。
- SchUseStrongCrypto [値 = 1]
- SystemDefaultTlsVersions [値 = 1]
- 次の DWORD 値ペアを作成します。
- 次のレジストリ サブキーを見つけます。
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319
- 次の DWORD 値ペアを作成します。
- SchUseStrongCrypto [値 = 1]
- SystemDefaultTlsVersions [値 = 1]
- 次の DWORD 値ペアを作成します。
- 設定を有効にするためにシステムを再起動します。
方法 2: PowerShell を使用してレジストリを変更する
次の Windows PowerShell スクリプトを管理者モードで実行して、フレームワークが継承した TLS 1.0 の依存関係を防ぐために .NET Framework を自動的に構成します。
# Allow .NET Framework to use higher levels of Cryptography
$NetRegistryPath1 = "HKLM:\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727"
New-ItemProperty -Path $NetRegistryPath1 -Name "SchUseStrongCrypto" -Value "1" -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $NetRegistryPath1 -Name "SystemDefaultTlsVersions" -Value "1" -PropertyType DWORD -Force | Out-Null
$NetRegistryPath2 = "HKLM:\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319"
New-ItemProperty -Path $NetRegistryPath2 -Name "SchUseStrongCrypto" -Value "1" -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $NetRegistryPath2 -Name "SystemDefaultTlsVersions" -Value "1" -PropertyType DWORD -Force | Out-Null
$NetRegistryPath3 = "HKLM:\SOFTWARE\Microsoft\.NETFramework\v2.0.50727"
New-ItemProperty -Path $NetRegistryPath3 -Name "SchUseStrongCrypto" -Value "1" -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $NetRegistryPath3 -Name "SystemDefaultTlsVersions" -Value "1" -PropertyType DWORD -Force | Out-Null
$NetRegistryPath4 = "HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319"
New-ItemProperty -Path $NetRegistryPath4 -Name "SchUseStrongCrypto" -Value "1" -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $NetRegistryPath4 -Name "SystemDefaultTlsVersions" -Value "1" -PropertyType DWORD -Force | Out-Null
追加設定
更新プログラムのロールアップ 4 を適用した後、次のディレクトリにあるこのロールアップに含まれている管理パックをインポートすることを確認します: %ProgramFiles%\Microsoft System Center 2016\Operations Manager\Server\Management Packs for Update Rollups
します。
Operations Manager でサポートされているバージョンの Linux サーバーを監視する場合は、ディストリビューションの適切な Web サイトの指示に従って TLS 1.2 を構成します。
監査コレクション サービス
監査コレクション サービス (ACS) の場合、ACS コレクター サーバーのレジストリで追加の変更を行う必要があります。 ACS は ODBC データ ソース名 (DSN) を使用してデータベースに接続します。 DSN 設定が更新され、TLS 1.2 で機能するようにします。
- ローカルの管理資格情報を持つアカウントを使って、サーバーにログインします。
- レジストリ エディターを起動するには、Start を選択し、Run ボックスに「regedit」と入力し、OK を選択します。
- OpsMgrAC の次の ODBC サブキーを見つけます:
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC
。- 既定の DSN 名が
OpsMgrAC
されていることに注意してください。
- 既定の DSN 名が
- ODBC データ ソースサブキーで、DSN 名 OpsMgrAC を選択します。 これには、データベース接続に使用する ODBC ドライバーの名前が含まれます。 ODBC 11.0 がインストールされている場合は、この名前を ODBC Driver 11 for SQL Serverに変更するか、ODBC 13.0 がインストールされている場合は、この名前を SQL Server 用 ODBC Driver 13に変更します。
- OpsMgrAC サブキーで、インストールされている ODBC バージョンの Driver を更新します。
- ODBC 11.0 がインストールされている場合は、Driver エントリを
%WINDIR%\system32\msodbcsql11.dll
に変更します。 - ODBC 13.0 がインストールされている場合は、Driver エントリを
%WINDIR%\system32\msodbcsql13.dll
に変更します。 - ODBC 17.0 がインストールされている場合は、Driver エントリを
%WINDIR%\system32\msodbcsql17.dll
に変更します。 - ODBC 18.0 がインストールされている場合は、Driver エントリを
%WINDIR%\system32\msodbcsql18.dll
に変更します。
- ODBC 11.0 がインストールされている場合は、Driver エントリを
レジストリ ファイル
または、次の .reg ファイルをメモ帳または別のテキスト エディターに作成して保存します。 保存した .reg ファイルを実行するには、ファイルをダブルクリックします。
ODBC 11.0、13.0、17.x、または 18.x の場合。 次のファイル ODBC.regを作成し、使用されている ODBC バージョンに置き換えます。
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources] "OpsMgrAC"="ODBC Driver 18 for SQL Server" [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC] "Driver"="%WINDIR%\system32\msodbcsql18.dll"
PowerShell
または、次の PowerShell コマンドを実行して変更を自動化します。
ODBC 11.0 の場合は、次の PowerShell コマンドを実行します。
New-ItemProperty -Path "HKLM:\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC" -Name "Driver" -Value "%WINDIR%\system32\msodbcsql11.dll" -PropertyType STRING -Force | Out-Null New-ItemProperty -Path "HKLM:\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources" -Name "OpsMgrAC" -Value "ODBC Driver 11 for SQL Server" -PropertyType STRING -Force | Out-Null
ODBC 13.0 の場合は、次の PowerShell コマンドを実行します。
New-ItemProperty -Path "HKLM:\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC" -Name "Driver" -Value "%WINDIR%\system32\msodbcsql13.dll" -PropertyType STRING -Force | Out-Null New-ItemProperty -Path "HKLM:\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources" -Name "OpsMgrAC" -Value "ODBC Driver 13 for SQL Server" -PropertyType STRING -Force | Out-Null
監査コレクション サービス
監査コレクション サービス (ACS) の場合、ACS コレクター サーバーのレジストリで追加の変更を行う必要があります。 ACS は ODBC データ ソース名 (DSN) を使用してデータベースに接続します。 DSN 設定が更新され、TLS 1.2 で機能するようにします。
ローカルの管理資格情報を持つアカウントを使って、サーバーにログインします。
レジストリ エディターを起動するには、Start を選択し、Run ボックスに「regedit」と入力し、OK を選択します。
OpsMgrAC の次の ODBC サブキーを見つけます:
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC
。注記
DSN の既定の名前は OpsMgrAC です。
ODBC データ ソースサブキーで、DSN 名 OpsMgrAC を選択します。 これには、データベース接続に使用する ODBC ドライバーの名前が含まれます。 ODBC 17 がインストールされている場合は、この名前を ODBC Driver 17 for SQL Serverに変更します。
OpsMgrAC サブキーで、インストールされている ODBC バージョンの Driver を更新します。
- たとえば、ODBC 17 がインストールされている場合は、[ドライバー] エントリを
%WINDIR%\system32\msodbcsql17.dll
に変更します。 - 異なる場合は、インストールされている ODBC ドライバーの現在のバージョンの DLL の名前を確認します。
- たとえば、ODBC 17 がインストールされている場合は、[ドライバー] エントリを
レジストリ ファイル
または、次の .reg ファイルをメモ帳または別のテキスト エディターに作成して保存します。 保存した .reg ファイルを実行するには、ファイルをダブルクリックします。
ODBC 17 の場合は、次の ODBC 17.reg ファイルを作成します。
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources] "OpsMgrAC"="ODBC Driver 17 for SQL Server" [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC] "Driver"="%WINDIR%\system32\msodbcsql17.dll"
PowerShell
または、次の PowerShell コマンドを実行して変更を自動化します。
17 以外の ODBC ドライバー バージョンを使用している場合は、dll ファイルパスを適切なバージョンに置き換えてください。
New-ItemProperty -Path "HKLM:\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC" -Name "Driver" -Value "%WINDIR%\system32\msodbcsql7.dll" -PropertyType STRING -Force | Out-Null New-ItemProperty -Path "HKLM:\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources" -Name "OpsMgrAC" -Value "ODBC Driver 17 for SQL Server" -PropertyType STRING -Force | Out-Null
次のステップ
- セキュリティ エンジニアリング チームの TLS 1.0 の詳細については、TLS 1.0 の問題 の解決を参照してください。
- 使用されるポートの完全な一覧、通信の方向、およびポートを構成できる場合は、「 Operations Manager のファイアウォールの構成」を参照してください。
- 管理グループ内のコンポーネント間のデータの保護方法の全体的なレビューについては、「Operations Manager での認証とデータ暗号化を参照してください。