次の方法で共有


トランスポート層セキュリティの実装 1.2

この記事では、System Center Operations Manager でトランスポート層セキュリティ (TLS) 1.2 を利用できるようにする方法について説明します。

Note

Operations Manager では、オペレーティング システム レベルで構成されたプロトコルが使用されます。 たとえば、TLS 1.0、TLS 1.1、TLS 1.2 がオペレーティング システム レベルで有効になっている場合、Operations Manager では次の優先順で 3 つのプロトコルのいずれかが選択されます。

  1. TLS バージョン 1.2
  2. TLS バージョン 1.1
  3. TLS バージョン 1.0

次に、Schannel SSP によって、クライアントとサーバーがサポートできる最も優先順位の高い認証プロトコルが選択されます。

Operations Manager で TLS プロトコル バージョン 1.2 を実装するには、次の手順を実行します。

Note

Microsoft OLE DB Driver 18 for SQL Server (推奨) は、Operations Manager 2016 UR9 以降でサポートされています。

  1. SQL Server 2012 Native Client 11.0 または Microsoft OLE DB Driver (x64) をすべての管理サーバーと Web コンソール サーバーにインストールします。
  2. Microsoft ODBC Driver (x64) をすべての管理サーバーと Web コンソール サーバーにインストールします。
  3. TLS 1.2 をサポートする Required SQL Server 更新プログラム をインストールします。
  4. すべてのコンポーネントに、SCOM 2016 の更新プログラムロールアップ 4 をインストールします。
  5. OS と互換性のある最小限の .NET 4.6 がサーバーにインストールされていることを確認する: .NET Framework のバージョンと依存関係
    1. SCOM 2016 の非互換性に関する既知の問題があるため、.NET 4.8 をインストールしないでください。
  6. TLS 1.2 のみを使用するように Windows を構成します。
  7. 既定で TLS 1.2 を使用するように .NET を構成します。
  8. インストールされている場合は、監査コレクション サービスを構成します。
  1. Microsoft OLE DB Driver for SQL バージョン 18.7.4 をすべての管理サーバーと Web コンソール サーバーにインストールします。
  2. Microsoft ODBC Driver for SQL バージョン 17.10.6 をすべての管理サーバーと Web コンソール サーバーにインストールします。
  3. TLS 1.2 のみを使用するように Windows を構成します。
  4. 既定で TLS 1.2 を使用するように .NET を構成します。
  5. インストールされている場合は、監査コレクション サービスを構成します。

Note

SQL Server 接続の暗号化を利用する場合は、代わりに次のドライバー バージョンをインストールする必要があります。

SQL 接続暗号化の構成の詳細については、接続を暗号化するための SQL Server データベース エンジンの構成に関するページを参照してください。

Operations Manager では、SHA1 と SHA2 の自己署名証明書が生成されます。 これは、TLS 1.2 を有効にするために必要です。 CA 署名付き証明書が使用されている場合は、証明書が SHA1 または SHA2 であることを確認します。

Note

セキュリティ ポリシーで TLS 1.0 と 1.1 が制限されている場合、セットアップ メディアに TLS 1.2 をサポートするための更新プログラムが含まれていないため、新しい Operations Manager 2016 管理サーバー、ゲートウェイ サーバー、Web コンソール、および Reporting Services ロールのインストールは失敗します。 これらの役割をインストールできる唯一の方法は、システムで TLS 1.0 を有効にし、更新プログラムのロールアップ 4 を適用してから、システムで TLS 1.2 を有効にすることです。 この制限は、Operations Manager バージョン 1801 には適用されません。

TLS 1.2 プロトコルのみを使用するように Windows オペレーティング システムを構成する

次のいずれかの方法を使用して、TLS 1.2 プロトコルのみを使用するように Windows を構成します。

方法 1: 手動でレジストリを変更する

重要

慎重にこのセクションの手順に従います。 レジストリを正しく変更しないと、重大な問題が発生する可能性があります。 変更する前に、問題が発生した場合に復元するためにレジストリをバックアップします。

システム全体のすべての SCHANNEL プロトコルを有効または無効にするには、次の手順を使用します。 着信と発信のすべての通信で TLS 1.2 プロトコルを有効にすることをお勧めします。

Note

これらのレジストリを変更しても、Kerberos または NTLM プロトコルの使用には影響しません。

  1. ローカルの管理資格情報を持つアカウントを使って、サーバーにログインします。

  2. レジストリ エディターを起動するには、Start を選択し、Run ボックスに「regedit」と入力し、OK を選択します。

  3. 次のレジストリ サブキーを見つけます。

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols

  4. Protocolsの下にサブキーを作成します。

    1. SSL 2.0
    2. SSL 3.0
    3. TLS 1.0
    4. TLS 1.1
    5. TLS 1.2
  5. 前に作成した各プロトコル バージョンのサブキーの下に、 ClientServer サブキーを作成します。 たとえば、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
  6. 各プロトコルを無効にするには、 Server および Client の下に次の DWORD 値を作成します。

    • Enabled [Value = 0]
    • DisabledByDefault [値 = 1]
  7. 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:
  8. 次に、 Server および Client の下に次の DWORD 値を作成します。

    • Enabled [値 = 1]
    • DisabledByDefault [値 = 0]
  9. レジストリ エディターを閉じます。

方法 2: レジストリを自動的に変更する

次の 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 " Enabling - TLS 1.2"
    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 " "
}

TLS 1.2 のみを使用するように .NET Framework を構成する

.NET では通常、通信に使用する TLS プロトコルをアプリケーションで定義する必要があります。ただし、SCOM のインスタンスでは、使用するプロトコルを .NET システム全体に指示する必要があります。

Operations Manager のすべての前提条件の構成を完了したら、すべての管理サーバー、Web コンソール ロールをホストしているサーバー、およびエージェントがインストールされているすべての Windows コンピューターで、次の手順を実行します。

重要

慎重にこのセクションの手順に従います。 レジストリを正しく変更しないと、重大な問題が発生する可能性があります。 変更を加える前に、問題が発生した場合に備え、復元のためにレジストリをバックアップしてください。

Note

Windows OS 2012 で実行されている SCOM では、UNIX/LINUX 監視に TLS 1.2 over HTTP を使用するために追加の変更が必要です。 Windows で WinHTTP で TLS 1.2 を既定のセキュリティ プロトコルとして有効にするには、Windows の WinHTTP で TLS 1.1 と TLS 1.2 を既定のセキュリティで保護されたプロトコルとして有効にするために、 Update に従って次の変更を行う必要があります

  1. UNIX/LINUX リソース プール内の管理サーバー/ゲートウェイ サーバーに KB3140245 をインストールします。
  2. KB 記事で説明されているように変更されたレジストリをバックアップします。
  3. UNIX/LINUX リソース プールの管理サーバー/ゲートウェイで Easy Fix ツールをダウンロードして実行します。
  4. サーバーを再起動します。

レジストリを手動で変更する

  1. レジストリ エディターを開きます
  2. 次のレジストリ サブキーを見つけます。 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727
    1. 次の DWORD 値ペアを作成します。
      • SchUseStrongCrypto [値 = 1]
      • SystemDefaultTlsVersions [値 = 1]
  3. 次のレジストリ サブキーを見つけます。 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727
    1. 次の DWORD 値ペアを作成します。
      • SchUseStrongCrypto [値 = 1]
      • SystemDefaultTlsVersions [値 = 1]
  4. 次のレジストリ サブキーを見つけます。 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319
    1. 次の DWORD 値ペアを作成します。
      • SchUseStrongCrypto [値 = 1]
      • SystemDefaultTlsVersions [値 = 1]
  5. 次のレジストリ サブキーを見つけます。 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319
    1. 次の DWORD 値ペアを作成します。
      • SchUseStrongCrypto [値 = 1]
      • SystemDefaultTlsVersions [値 = 1]
  6. 設定を有効にするためにシステムを再起動します。

レジストリを自動的に変更する

次の Windows PowerShell スクリプトを管理者モードで実行して、フレームワークが継承した TLS 1.0 の依存関係を防ぐために .NET Framework を自動的に構成します。

# Tighten up the .NET Framework
$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

追加設定

これが System Center 2016 - Operations Manager で実装されている場合は、更新プログラムロールアップ 4 を適用した後、このロールアップに含まれる管理パックを必ずインポートしてください。 \Program Files\Microsoft System Center 2016\Operations Manager\Server\Management Pack for Update Rollups

サポートされているバージョンの Linux サーバーを Operations Manager で監視している場合は、ディストリビューションの該当する Web サイトの指示に従って TLS 1.2 を構成してください。

コレクション サービスの監査

監査コレクション サービス (ACS) の場合は、ACS コレクター サーバー上のレジストリに追加の変更を加える必要があります。 ACS は DSN を使用してデータベースに接続します。 DSN 設定を更新して、TLS 1.2 で機能させる必要があります。

  1. ローカルの管理資格情報を持つアカウントを使って、サーバーにログインします。

  2. レジストリ エディターを起動するには、Start を選択し、Run ボックスに「regedit」と入力し、OK を選択します。

  3. OpsMgrAC の次の ODBC サブキーを見つけます: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC

    Note

    DSN の既定の名前は OpsMgrAC です。

  4. ODBC データ ソースサブキーで、DSN 名 OpsMgrAC を選択します。 これには、データベース接続に使用する ODBC ドライバーの名前が含まれます。 ODBC 11.0 がインストールされている場合は、この名前を ODBC Driver 11 for SQL Server に変更するか ODBC 13.0 がインストールされている場合は、この名前を ODBC Driver 13 for SQL Server に変更します。

  5. 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 に変更します。

レジストリ ファイル

または、次の .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 は DSN を使用してデータベースに接続します。 DSN 設定を更新して、TLS 1.2 で機能させる必要があります。

  1. ローカルの管理資格情報を持つアカウントを使って、サーバーにログインします。
  2. レジストリ エディターを起動するには、Start を選択し、Run ボックスに「regedit」と入力し、OK を選択します。
  3. OpsMgrAC の次の ODBC サブキーを見つけます: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC

Note

DSN の既定の名前は OpsMgrAC です。

  1. ODBC データ ソースサブキーで、DSN 名 OpsMgrAC を選択します。 これには、データベース接続に使用する ODBC ドライバーの名前が含まれます。 ODBC 17 がインストールされている場合は、この名前を ODBC Driver 17 for SQL Server に変更します。
  2. OpsMgrAC サブキーで、インストールされている ODBC バージョンの Driver を更新します。
    • たとえば、ODBC 17 がインストールされている場合は、[ドライバー] エントリを %WINDIR%\system32\msodbcsql17.dllに変更します。
    • 異なる場合は、インストールされている ODBC ドライバーの現在のバージョンの DLL の名前を確認します。

レジストリ ファイル

または、次の .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
    

次のステップ