EXCHANGE SERVER TLS 構成のベスト プラクティス

このドキュメントでは、Exchange Server 2013、Exchange Server 2016、Exchange Server 2019 で特定の TLS バージョンを適切に構成 (有効または無効) するために必要な手順について説明します。 この記事では、TLS で使用される暗号スイートとハッシュ アルゴリズムを最適化する方法についても説明します。 TLS が正しく構成されていない場合は、Microsoft 365 やその他のシステムとやり取りするときにさまざまな問題が発生する可能性があります。これは、特定の最小 TLS 標準を必要とするように構成されています。

TLS (および SSL) プロトコルの詳細については、 トランスポート層セキュリティ プロトコル に関する記事を参照してください。

重要

ここで説明する手順の一部は、特定のオペレーティング システムまたは特定のExchange Serverバージョンでのみ実行できるため、注意深くお読みください。

各セクションの先頭には、設定がサポートされているかどうか、および特定のExchange Serverバージョンから既に事前に構成されているかどうかを示すマトリックスがあります。

TLS バージョンを無効にする前に考慮する必要がある事項

ヒント

Exchange HealthChecker スクリプトを使用して、Exchange サーバーの現在の TLS 構成をチェックできます。

すべてのアプリケーションが TLS バージョンをサポートしていることを確認してください。このバージョンは有効のままです。 (ただし、これらに限定されない) などの考慮事項:

  • ドメイン コントローラーとグローバル カタログ サーバーは、たとえば TLS 1.2 のみの構成をサポートしていますか?
  • パートナー アプリケーション (SharePoint、Lync、Skype for Businessなど) は、TLS 1.2 のみの構成など、サポートされていますか。
  • 以前の Windows 7 デスクトップを Outlook を使用して更新し、 WinHTTP 上の TLS 1.2 をサポートしましたか?
  • ロード バランサーは TLS 1.2 の使用をサポートしていますか?
  • デスクトップ、モバイル、ブラウザー の各アプリケーションで TLS 1.2 がサポートされていますか?
  • 多機能プリンターなどのデバイスは TLS 1.2 をサポートしていますか?
  • Exchange Serverまたは Microsoft 356 と統合するサード パーティ製またはカスタムの社内アプリケーションは、強力な TLS 実装をサポートしていますか?

そのため、TLS 1.2 に移行し、以前のセキュリティ プロトコルから離れる手順は、運用環境をシミュレートするラボで最初に実行してから、運用環境での展開をゆっくりと開始することを強くお勧めします。

以下で説明するように、特定の TLS バージョンを無効にするために使用する手順は、次のExchange Server機能に適用されます。

  • 簡易メール トランスポート プロトコル (SMTP)
  • Outlook クライアント接続 (Outlook Anywhere/MAPI/HTTP)
  • Exchange Active Sync (EAS)
  • Outlook on the Web (OWA)
  • Exchange 管理 センター (EAC) と Exchange コントロール パネル (ECP)
  • 自動 検出
  • Exchange Web サービス (EWS)
  • REST (Exchange Server 2016/2019)
  • HTTPS 経由での Exchange による PowerShell の使用
  • POP と IMAP

前提条件

TLS 1.2 のサポートは、Exchange Server 2013 CU19 および Exchange Server 2016 CU8 で追加されました。 Exchange Server 2019 では、既定で TLS 1.2 がサポートされています。

Exchange Serverは Windows Server なしでは実行できないため、安定したセキュリティで保護された TLS 実装を実行するには、最新のオペレーティング システム更新プログラムをインストールすることが重要です。

また、最新バージョンの.NET Frameworkと関連するパッチをCUでサポートする必要もあります。

オペレーティング システムに基づいて、次の更新プログラムもインストールされていることを確認します (サーバーが Windows Updatesに最新の場合はインストールする必要があります)。

オペレーティング システムがWindows Server 2012または R2 Windows Server 2012している場合は、TLS 1.2 を有効にする前に、KB3161949とKB2973337をインストールする必要があります。

警告

Windows Server 2012およびWindows Server 2012 R2 延長サポートは、2023 年 10 月 10 日に終了しました。 これらのサーバーは、ESU なしでWindows セキュリティ Updatesを受信しなくなります。 サポートされているバージョンにできるだけ早く移行することを強くお勧めします。

TLS 構成が適用された後は、必ずExchange Serverを再起動してください。 サーバーの再起動後にアクティブになります。

Schannel から既定値を継承するための.NET Frameworkの準備

次の表は、Exchange Server/Windows Server の組み合わせと、既定の .NET Framework Schannel 継承構成を示しています。

Exchange Server Windows Server サポート 既定で構成
Exchange Server 2019 CU14 以降 任意 はい はい (新規インストールのみ)
Exchange Server 2019 任意 はい 部分的に (SchUseStrongCrypto 手動で構成する必要があります)
Exchange Server 2016 任意 はい いいえ (OS の既定値が使用されます)
Exchange Server 2013 任意 はい いいえ (OS の既定値が使用されます)

レジストリ値はSystemDefaultTlsVersions、.NET Framework 4.x で使用されるセキュリティ プロトコル バージョンの既定値を定義します。 値が に1設定されている場合、.NET Framework 4.x は Windows Secure Channel (Schannel) DisabledByDefault レジストリ値から既定値を継承します。 値が未定義の場合、値が に 0設定されているかのように動作します。

強力な暗号化 (レジストリ値によって SchUseStrongCrypto 構成) では、より安全なネットワーク プロトコル (TLS 1.2 と TLS 1.1) が使用され、セキュリティで保護されていないプロトコルがブロックされます。 SchUseStrongCrypto は、アプリケーション内のクライアント (送信) 接続にのみ影響します。 .NET Framework 4.x を構成して Schannel から値を継承することで、TLS 1.2 を含む OS でサポートされている最新バージョンの TLS を使用できるようになります。

.NET Framework 4.x Schannel 継承を有効にする

管理者特権の PowerShell ウィンドウから次のコマンドを実行して、.NET Framework 4.x Schannel 継承を構成します。

Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319" -Name "SystemDefaultTlsVersions" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319" -Name "SchUseStrongCrypto" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319" -Name "SystemDefaultTlsVersions" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319" -Name "SchUseStrongCrypto" -Value 1 -Type DWord

.NET Framework 3.5 Schannel 継承を有効にする

注:

Exchange Server 2013 以降では、この設定は必要ありません。 ただし、一貫性のある構成を確保するために、.NET 4.x 設定と同じように構成することをお勧めします。

管理者特権の PowerShell ウィンドウから次のコマンドを実行して、.NET Framework 3.5 Schannel 継承を構成します。

Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v2.0.50727" -Name "SystemDefaultTlsVersions" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v2.0.50727" -Name "SchUseStrongCrypto" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727" -Name "SystemDefaultTlsVersions" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727" -Name "SchUseStrongCrypto" -Value 1 -Type DWord

TLS 1.2 を構成する手順

次の表は、TLS 1.2 がサポートされているExchange Server/Windows Server の組み合わせを示しています。 この表には、既定の構成も示されています。

Exchange Server Windows Server サポートされている 既定で構成
Exchange Server 2019 任意 はい はい (enabled)
Exchange Server 2016 任意 はい いいえ
Exchange Server 2013 任意 はい いいえ

TLS 1.2 を有効にする

管理者特権の PowerShell ウィンドウから次のコマンドを実行して、クライアントとサーバーの接続に対して TLS 1.2 を有効にします。

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.2" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Name "Enabled" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -Name "Enabled" -Value 1 -Type DWord

TLS 1.2 を無効にする

管理者特権の PowerShell ウィンドウから次のコマンドを実行して、クライアントとサーバーの接続で TLS 1.2 を無効にします。

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.2" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -Name "Enabled" -Value 0 -Type DWord

TLS 1.1 を構成する手順

次の表は、TLS 1.1 がサポートされているExchange Server/Windows Server の組み合わせを示しています。 この表には、既定の構成も示されています。

Exchange Server Windows Server サポート 既定で構成
Exchange Server 2019 任意 はい はい (disabled)
Exchange Server 2016 任意 はい いいえ
Exchange Server 2013 任意 はい いいえ

TLS 1.1 を有効にする

注:

Microsoft TLS 1.1 の実装には、既知のセキュリティの脆弱性はありません。 ただし、将来のプロトコル ダウングレード攻撃やその他の TLS の脆弱性の可能性があるため、TLS 1.1 を慎重に計画して無効にすることをお勧めします。 慎重に計画しないと、クライアントが接続を失う可能性があります。

管理者特権の PowerShell ウィンドウから次のコマンドを実行して、クライアントとサーバーの接続に対して TLS 1.1 を有効にします。

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.1" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" -Name "Enabled" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" -Name "Enabled" -Value 1 -Type DWord

TLS 1.1 を無効にする

管理者特権の PowerShell ウィンドウから次のコマンドを実行して、クライアントとサーバーの接続に対して TLS 1.1 を無効にします。

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.1" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" -Name "Enabled" -Value 0 -Type DWord

TLS 1.0 を構成する手順

次の表は、TLS 1.0 がサポートされているExchange Server/Windows Server の組み合わせを示しています。 この表には、既定の構成も示されています。

Exchange Server Windows Server サポートされている 既定で構成
Exchange Server 2019 任意 はい はい (disabled)
Exchange Server 2016 任意 はい いいえ
Exchange Server 2013 任意 はい いいえ

TLS 1.0 を有効にする

注:

Microsoft TLS 1.0 実装においては、セキュリティに関する既知の脆弱性はありません。 ただし、将来のプロトコル ダウングレード攻撃やその他の TLS の脆弱性の可能性があるため、TLS 1.0 を慎重に計画して無効にすることをお勧めします。 慎重に計画しないと、クライアントが接続を失う可能性があります。

管理者特権の PowerShell ウィンドウから次のコマンドを実行して、クライアントとサーバーの接続に TLS 1.0 を有効にします。

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.0" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" -Name "Enabled" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" -Name "Enabled" -Value 1 -Type DWord

TLS 1.0 を無効にする

管理者特権の PowerShell ウィンドウから次のコマンドを実行して、クライアントとサーバーの接続で TLS 1.0 を無効にします。

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.0" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" -Name "Enabled" -Value 0 -Type DWord

暗号アルゴリズムとハッシュ アルゴリズムのベスト プラクティス

重要

このセクションで説明する手順は、前に説明した手順では省略可能です。 次の手順を実行する前に、TLS 1.2 を構成し、TLS 1.0 と 1.1 を完全に無効にする必要があります。

TLS 1.0 と TLS 1.1 を無効にして、問題のあるクライアントの構成の問題を分離するために、これらの設定を個別に適用することを検討してください。

クライアントとサーバーの TLS 再ネゴシエーションの厳密なモードを構成する

次の表は、Exchange Server/Windows Server の組み合わせと、既定の TLS 再ネゴシエーションの厳密なモード構成を示しています。

Exchange Server Windows Server サポートされている 既定で構成
Exchange Server 2019 任意 はい はい (strict mode enabled)
Exchange Server 2016 任意 はい いいえ
Exchange Server 2013 任意 いいえ 該当なし

これらの設定は、TLS 再ネゴシエーションの厳密なモードを構成するために使用されます。 つまり、サーバーでは、この セキュリティ更新プログラム が適用されているクライアントのみが TLS セッションを設定および再ネゴシエーションできます。 サーバーは、この セキュリティ更新プログラム が適用されていないクライアントが TLS セッションを設定することを許可しません。 この場合、サーバーはクライアントからのそのような要求を終了します。

同様に、この セキュリティ更新プログラム がクライアントに適用され、クライアントが厳密モードの場合、クライアントは、このセキュリティ更新プログラムが適用されているすべてのサーバーで TLS セッションを設定および再ネゴシエーションできます。 クライアントは、このセキュリティ更新プログラムが適用されていないサーバーで TLS セッションを設定することはできません。 クライアントは、このようなサーバーとの TLS ネゴシエーション試行を進めることはできません。

管理者特権の PowerShell ウィンドウから次のコマンドを実行して、再ネゴシエーション厳密モードを有効にします。

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "AllowInsecureRenegoClients" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "AllowInsecureRenegoServers" -Value 0 -Type DWord

次の表は、Exchange Server/Windows Server の組み合わせと既定の推奨暗号スイート構成を示しています。

Exchange Server Windows Server サポート 既定で構成
Exchange Server 2019 任意 はい はい
Exchange Server 2016 任意 はい いいえ
Exchange Server 2013 Windows Server 2012 (R2) はい いいえ

Windows Server 2012 と Windows Server 2012 R2

管理者特権の PowerShell ウィンドウから次のコマンドを実行して、推奨される暗号スイートを構成します。

New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002" -Name "Functions" -PropertyType MultiString -Value "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256" -Force

Windows Server 2016以上

注:

グループ ポリシー オブジェクト (GPO) を使用して暗号スイートを構成できます。 GPO を使用して Enable/Disable-TLSCipherSuite 既に構成されている場合、またはレジストリ キーが次のパスの Functions 下に既に存在する場合は、コマンドレットを使用して手動で構成することはできません。 HKLM:\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002

管理者特権の PowerShell ウィンドウから次のコマンドを実行して、推奨される暗号スイートを構成します。

最初のタスクは、既存のすべての暗号スイートを無効にすることです。

foreach ($suite in (Get-TLSCipherSuite).Name) {
    if (-not([string]::IsNullOrWhiteSpace($suite))) {
        Disable-TlsCipherSuite -Name $suite -ErrorAction SilentlyContinue
    }
}

2 番目のタスクは、TLS 1.2 推奨暗号スイートのみを有効にすることです。

$cipherSuites = @('TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384',
                'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256',
                'TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384',
                'TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256',
                'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384',
                'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256',
                'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384',
                'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256')

$suiteCount = 0
foreach ($suite in $cipherSuites) {
    Enable-TlsCipherSuite -Name $suite -Position $suiteCount
    $suiteCount++
}

古い暗号とハッシュを無効にする

次の表は、Exchange Server/Windows Server の組み合わせと、既定の古い暗号とハッシュ構成を示しています。

Exchange Server Windows Server サポート 既定で構成
Exchange Server 2019 任意 はい はい
Exchange Server 2016 任意 はい いいえ
Exchange Server 2013 Windows Server 2012 (R2) はい いいえ

管理者特権の PowerShell ウィンドウから次のコマンドを実行して、古い暗号とハッシュを無効にします。

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "Hashes" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "Ciphers" -ErrorAction SilentlyContinue
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("DES 56/56")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("NULL")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC2 40/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC2 56/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC2 56/56")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC4 40/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC4 56/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC4 64/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC4 128/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("Triple DES 168")
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes" -Name "MD5" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\DES 56/56" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\NULL" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 40/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 56/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 56/56" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 56/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 64/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes\MD5" -Name "Enabled" -Value 0 -Type DWord

楕円曲線の基本設定を構成する

次の表は、Exchange Server/Windows Server の組み合わせと既定の楕円曲線の基本設定を示しています。

Exchange Server Windows Server サポートされている 既定で構成
Exchange Server 2019 任意 はい はい
Exchange Server 2016 Windows Server 2016 はい いいえ
Exchange Server 2013 任意 いいえ 該当なし

注:

省略記号曲線は curve25519 FIPS モードでは使用できないので無効にすることをお勧めします。 詳細については、「Windows 10 バージョン 1607 以降の TLS 省略曲線」を参照してください。

管理者特権の PowerShell ウィンドウから次のコマンドを実行して、楕円曲線の基本設定を構成します。

Disable-TlsEccCurve -Name "curve25519"
Enable-TlsEccCurve -Name "NistP384" -Position 0
Enable-TlsEccCurve -Name "NistP256" -Position 1

TLS 1.2 が使用されていることを検証する

TLS 1.2 が有効になると、作業が成功し、システムが受信 (サーバー) 接続と送信 (クライアント) 接続に対して TLS 1.2 をネゴシエートできることを確認すると便利です。 TLS の使用状況を検証するために使用できる方法がいくつかあります。その一部については、次のセクションで説明します。

Exchange Serverで使用される多くのプロトコルは HTTP ベースであるため、Exchange サーバー上の IIS プロセスを走査します。 MAPI/HTTP、Outlook Anywhere、Exchange Web Services、Exchange ActiveSync、REST、OWA & EAC、オフライン アドレス帳のダウンロード、自動検出は、Exchange Serverで使用される HTTP ベースのプロトコルの例です。

インターネット インフォメーション サービス (IIS) ログ

IIS チームは、暗号化プロトコルのバージョンと暗号に関連するカスタム フィールドをログに記録するために、R2 以降をWindows Server 2012する機能を追加しました。 これらのカスタム フィールドを有効にし、HTTP ベースのプロトコルに関連する環境内の受信接続に関する情報のログの解析を開始する方法に関するドキュメントについては、ブログを参照することをお勧めします。

これらの IIS ユーザー設定フィールドは、R2 Windows Server 2012以前の Windows Server バージョンには存在しません。 ロード バランサーまたはファイアウォール ログでこの情報を提供できる場合があります。 ログにこの情報が提供される可能性があるかどうかを判断するには、ベンダーにガイダンスを依頼してください。

Microsoft Edge 開発者ツールを使用した TLS バージョンの確認

Microsoft Edge で使用できる を利用Developer Toolsして、Outlook on the Web (OWA) または Exchange 管理 Center (ECP) に接続するときに、セキュリティで保護された接続を確立するために使用された TLS バージョンをチェックできます。 これを行うには、次の手順を実行します。

  1. Microsoft Edge ブラウザーを開き、OWA または ECP への HTTPS 接続を確立します。
  2. を押 CTRL + SHIFT + I して を Developer Tools開きます。
  3. 右上隅の + 記号をクリックします。
  4. ドロップダウン メニューで を Security クリックします。
  5. セクションで TLS バージョンを Connection - secure connection settings 確認します。

アクティビティ バーに追加された、セキュリティ ツールを使用した Edge ブラウザー開発者ツールを示すスクリーンショット。セキュリティ ツール内には、[接続 - セキュリティで保護された接続設定] セクションが表示され、TLS 1.2 が強調表示されています。

メッセージ ヘッダー (Exchange Server 2016 以降)

Exchange Server 2016 以降のメッセージ ヘッダー データは、送受信ホストがメールを交換したときにネゴシエートされ、使用されるプロトコルを提供します。 メッセージ ヘッダー アナライザーを使用して、各ホップの明確な概要を取得できます。

注:

メッセージ ヘッダーの例には既知の例外が 1 つあります。 認証された SMTP (SMTP クライアント送信プロトコルとも呼ばれます) を使用してサーバーに接続してクライアントがメッセージを送信する場合、メッセージ ヘッダーの TLS バージョンには、顧客のクライアントまたはデバイスで使用される正しい TLS バージョンが表示されません。 Microsoft は、今後の更新プログラムでこの情報を追加する可能性を調査しています。

SMTP ログを使用したメール フロー

Exchange Server 2013 以降の SMTP ログには、2 つのシステム間で電子メールを交換する際に使用される暗号化プロトコルとその他の暗号化関連情報が含まれます。

サーバーが の場合は、使用される SMTP receiving systemTLS のバージョンに応じて、 をログで検索 Server value します。 サーバーが の場合は、 SMTP sending system使用される TLS のバージョンに応じて、 をログで検索 Client value します。

TLS バージョン サーバー値 クライアント値
TLS 1.0 SP_PROT_TLS1_0_SERVER SP_PROT-TLS1_0_CLIENT
TLS 1.1 SP_PROT_TLS1_1_SERVER SP_PROT-TLS1_1_CLIENT
TLS 1.2 SP_PROT_TLS1_2_SERVER SP_PROT-TLS1_2_CLIENT

次の例では、メールボックスの役割を実行する Exchange サーバー上のログ ファイルを検索し、TLS 1.0 プロトコルを使用して行われた接続を検索します。

Select-String -Path (((Get-TransportService -Identity $env:COMPUTERNAME).ReceiveProtocolLogPath).PathName.Replace("Hub","FrontEnd")+"\*.log") "SP_PROT_TLS1_0"

TLS 1.1 プロトコルを使用して行われた接続について、エッジ トランスポートロールを実行する Exchange サーバー上のログ ファイルを検索する例:

Select-String -Path (((Get-TransportService -Identity $env:COMPUTERNAME).ReceiveProtocolLogPath).PathName+"\*.log") "SP_PROT_TLS1_1"

POP と IMAP

POP クライアントと IMAP クライアントに使用される暗号化プロトコルのバージョンを公開するログは存在しません。 この情報をキャプチャするには、サーバーから Netmon トレースをキャプチャするか、HTTPS ブリッジングが行われているロード バランサーまたはファイアウォールを通過するトラフィックを検査する必要があります。