Transport Layer Security(TLS)1.2 は、プライバシーとデータの完全性を確保することで安全な通信を提供するために設計された暗号化プロトコルです。Microsoft は、Microsoft Entra Connect を含む多くのクラウドサービスで TLS 1.2 を最小要件としています。この記事では、ASP.NET アプリを含む Microsoft クラウドアプリケーションと Microsoft Entra Connect サーバーで TLS 1.2 を強制するための手順を段階的に解説します。
TLS 1.2 が重要な理由
TLS 1.2 は以前のバージョンと比べて暗号化とセキュリティが強化されており、クラウド環境での安全な通信に不可欠です。Microsoft Entra Connect バージョン 1.2.65.0 以降は TLS 1.2 を完全にサポートし、バージョン 2.3.20.0 以降では動作に TLS 1.2 が必要です。
サーバーで TLS 1.2 が有効になっていない場合は、Microsoft Entra Connect バージョン 2.0 以降を展開またはアップグレードする前に有効にする必要があります。
TLS 1.2 を強制するための解決策
TLS 1.2 を強制する手順は、設定するアプリケーションやサービスによって異なります。一般的なシナリオの詳細な解決策を以下に示します。
1. ASP.NET Web アプリケーションの場合
- ターゲットフレームワークを更新する
アプリケーションのターゲットフレームワークが 4.6.2 以降に設定されていることを確認してください。より高いバージョンを使用すると、パフォーマンスとセキュリティが向上します。 - Web.Config ファイルを変更する
次のWeb.Configファイルを更新して、ターゲットフレームワークを指定します。<system.web> <httpRuntime targetFramework="4.7.2" /> </system.web>サポートされている .NET Framework のバージョンについては、 Microsoft .NET Framework ライフサイクルを参照してください。
2. Web.Config を更新できない場合
次の Web.Config ファイルを変更できない場合は、アプリケーションの先頭に次のコードを追加する回避策を使用してください。
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3;
これにより、アプリケーションは安全な通信のために TLS 1.2 を明示的に使用するようになります。
3. Microsoft Entra Connect で TLS 1.2 を強制する
Microsoft Entra Connect サーバーでは、Azure との安全な通信を確保するために TLS 1.2 を有効にする必要があります。TLS 1.2 を強制するには、次の手順に従います。
レジストリを更新する
Microsoft Entra Connect サーバーのレジストリを更新して TLS 1.2 を強制します。次のレジストリキーを使用します。
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"Enabled"=dword:00000001
"DisabledByDefault"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"Enabled"=dword:00000001
"DisabledByDefault"=dword:00000000
重要:レジストリを更新した後、変更を有効にするために Windows サーバーを再起動してください。
4. PowerShell スクリプトを使用する
TLS 1.2 の設定を確認する
次の PowerShell スクリプトを使用して、Microsoft Entra Connect サーバーの現在の TLS 1.2 設定を確認できます。
Function Get-ADSyncToolsTls12RegValue {
[CmdletBinding()]
Param (
[Parameter(Mandatory=$true)]
[string] $RegPath,
[Parameter(Mandatory=$true)]
[string] $RegName
)
$regItem = Get-ItemProperty -Path $RegPath -Name $RegName -ErrorAction Ignore
$output = "" | select Path, Name, Value
$output.Path = $RegPath
$output.Name = $RegName
$output.Value = $regItem.$RegName -ne $null ? $regItem.$RegName : "Not Found"
$output
}
$regSettings = @()
$regPaths = @(
'HKLM:\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319',
'HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319',
'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server',
'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client'
)
foreach ($regPath in $regPaths) {
$regSettings += Get-ADSyncToolsTls12RegValue $regPath 'SystemDefaultTlsVersions'
$regSettings += Get-ADSyncToolsTls12RegValue $regPath 'SchUseStrongCrypto'
}
$regSettings
TLS 1.2 を有効にする
TLS 1.2 を強制するには、次の PowerShell スクリプトを使用します。
New-ItemProperty -Path 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319' -Name 'SystemDefaultTlsVersions' -Value '1' -PropertyType 'DWord' -Force | Out-Null
New-ItemProperty -Path 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -PropertyType 'DWord' -Force | Out-Null
New-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319' -Name 'SystemDefaultTlsVersions' -Value '1' -PropertyType 'DWord' -Force | Out-Null
New-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -PropertyType 'DWord' -Force | Out-Null
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -Name 'Enabled' -Value '1' -PropertyType 'DWord' -Force | Out-Null
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -Name 'Enabled' -Value '1' -PropertyType 'DWord' -Force | Out-Null
Write-Host 'TLS 1.2 has been enabled. Restart the server for changes to take effect.'
最後に
TLS 1.2 の強制は、Microsoft クラウドサービスや Azure サービスとの安全な通信とコンプライアンスを維持するための重要なステップです。ASP.NET アプリケーションを設定する場合でも、Microsoft Entra Connect サーバーを設定する場合でも、ここで紹介する解決策が互換性とセキュリティの確保に役立ちます。
詳細については、Microsoft の公式ドキュメントを参照してください。