TLS システム既定のバージョンの.NET Framework 2.0 sp2 で Windows Vista の SP2 には、Server 2008 SP2 に含まれているサポート

適用対象: Windows Vista Service Pack 2Windows Server 2008 Service Pack 2

.NET framework version 2.0 Service Pack 2 (SP2) と以前のバージョンのハードコードされた v3.0 の Secure Sockets Layer (SSL)、トランスポート層セキュリティ (TLS) の v1.0 での使用のデフォルト値は、.NET アプリケーションで別のプロトコルのバージョンが指定されました。 Windows Vista SP2 および Windows Server 2008 SP2 での.NET Framework 2.0 SP2 用のこの更新プログラムは、オペレーティング システムによって提供される SSL および TLS の既定値を使用するオプションを追加します。
 このコンテンツが可能となって Windows の更新プログラムにします。 コンテンツを取得するには、.NET Framework の最新の更新プログラムの Windows の更新プログラムをスキャンします。 場合は、システムが完全に最新の Windows Update を使用して、アクションを実行する必要はありません。 

解決方法


ダウンロード情報

以下のファイルは、Microsoft ダウンロード センターからダウンロードできます:Download x86 ベースのパッケージを今すぐダウンロードしますDownload 、X64 ベースのパッケージを今すぐダウンロードします Download 、IA64 ベースのパッケージを今すぐダウンロードします。この領域で次の機能強化を行った。
  • コンピューターで実行されている管理対象のアプリケーションについて、ハード コーディングされた .NET Framework の既定値ではなく SSL と TLS のオペレーティング システムの既定値を使用するには、次のレジストリ キーを設定します。
    • 64 ビット オペレーティング システム:
      [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]"SystemDefaultTlsVersions"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727]"SystemDefaultTlsVersions"=dword:00000001 
    • 32 ビット オペレーティング システム:
      [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]"SystemDefaultTlsVersions"=dword:00000001 
    注:アプリケーションの場合、コードまたは構成ファイルを特定の値をServicePointManager.SecureProtocolが設定や特定SslProtocols列挙では、レジストリ設定を指定するのには、 SslStream.AuthenticateAs* Api を使用して現象は発生しません。
  • さらに、.NET を対象とすると、TLS v1.2、TLS v1.1 と同様に、 ServicePointManager.SecurityProtocolプロパティはオペレーティング システムの既定値を設定するためのオプションとして使用できるSslProtocolsExtensionsの列挙体を追加しましたフレームワークのバージョン 2.0 SP2 です。 (拡張機能を使用する方法のについては、開発者ガイドのセクションを参照)。Windows Vista SP2 および Windows Server 2008 SP2 では、1.0 よりも新しいトランスポート層セキュリティ (TLS) プロトコルのバージョンをサポートしていません。 Windows Vista SP2 または Windows Server 2008 SP2 で実行されている.NET Framework 2.0 SP2 のマネージ アプリケーションでは、これらのプロトコルは、 ServicePointManager.SecurityProtocolプロパティで設定された場合でも TLS 1.2 または TLS 1.1 を使用できません。
マイクロソフトのサポート ファイルをダウンロードする方法の詳細については、以下のサポート技術情報番号をクリックしてください。
119591 オンライン サービスからマイクロソフトのサポート ファイルを入手する方法
4013443 「更新プログラムの表示または非表示」トラブルシューティング ツール パッケージマイクロソフトでは、アップロード時点の最新のウイルス検査プログラムを使用して、 配布ファイルのウイルス チェックを行っています。 配布ファイルはセキュリティで保護されたサーバー上に置かれており、権限のない第三者が無断でファイルを変更できないようになっています。 配布ファイルはセキュリティで保護されたサーバー上に置かれており、権限のない第三者が無断でファイルを変更できないようになっています。

開発者ガイド


次のファイルには、新しい拡張機能の定義です。
  • SecurityProtocolTypeExtensions.cs
    namespace System.Net{using System.Security.Authentication;public static class SecurityProtocolTypeExtensions{public const SecurityProtocolType Tls12 = (SecurityProtocolType)SslProtocolsExtensions.Tls12;public const SecurityProtocolType Tls11 = (SecurityProtocolType)SslProtocolsExtensions.Tls11;public const SecurityProtocolType SystemDefault = (SecurityProtocolType)0;}} 
  • SslProtocolsExtensions.cs
    namespace System.Security.Authentication{public static class SslProtocolsExtensions{public const SslProtocols Tls12 = (SslProtocols)0x00000C00;public const SslProtocols Tls11 = (SslProtocols)0x00000300;}} 
TLS のバージョン 1.2 のサポートを含めるには、ソース ファイルをプロジェクトに含めるし、次のメソッドを使用して、プロトコルのバージョンを設定します。
  • ServicePointManager ベースの Api を使用しているアプリケーションは、following:System.Net.ServicePointManager.SecurityProtocol を使用してプロトコルを設定することができます = SecurityProtocolTypeExtensions.Tls12 です。
  • SslStream AuthenticateAsClient (文字列、X509CertificateCollection、SslProtocols、ブール値)のオーバー ロードを使用しているアプリケーションは、 SslProtocolsExtensions.SslProtocolsの値を設定できます。Tls12.
最初の段落に記載されているレジストリ設定を設定すると、 SslProtocolsの値はSslProtocols.Noneとしてアプリケーションに設定されて場合は、選択されているシステムの既定の動作は Windows のバージョンに依存します。また、.NET Framework 3.5 sp1 では、TLS のバージョン 1.2 のサポートを有効にするようにアプリケーション コードを変更すると、この修正プログラムが展開されていないコンピューターで次の例外に対処することを確認する必要があります。
  1. 修正プログラムがインストールされていない場合ServicePointManager・ ベースの Api (HTTP、FTP、SMTP) がスローされます"System.NotSupportedException: 要求されたセキュリティ プロトコルはサポートされていません"アプリケーションがを呼び出すとServicePointManager.SecurityProtocolに新しい値を設定します。
  2. 修正プログラムがインストールされていない場合は、 SslStream・ ベースの Api は、AuthenticateAs の Api のいずれかを呼び出すと、例外がスローします。
    見つかりません: 指定された値は 'SslProtocolType' 列挙で有効です。パラメーター名: sslProtocolType
注:SslStreamのみ、 Tls12、任意の既存のTlsSsl3Ssl2Tls11の組み合わせの (例: Tls12 |Tls11 |Tls) はサイレント モードで、既存のプロトコルにダウン グレード (例: Tls) 修正プログラムが、システム上で。 Tls に例外をスローすることがなくそれに接続されます。

詳細情報


オペレーティング システムの既定値として TLS v1.1 または v1.2 を有効にする」の手順に、次のhttps://technet.microsoft.com/en-us/library/dn786418(v=ws.11).aspx#BKMK_SchannelTR_TLS12.注: これらの確認手順は、Windows クライアントにのみ適用されます。 TLS v1.1 と v1.2 では利用できない Windows Vista または Windows Server の 2008.If を追加することによってこれを行う特定のアプリケーションでは、「解決方法」セクションに記載されているレジストリ キーに設定されているオペレーティング システムの既定値を無効にする必要がある、次のレジストリ キー:
HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\v2.0.50727\System.Net.ServicePointManager.SystemDefaultTlsVersions<<Full path of the .exe for the file>>     DWORD    0C:\MyApp\MyApp.exe    DWORD    0 
TLS のバージョン 1.2 の詳細については、導入の TLS のバージョン 1.2を参照してください。SystemDefaultTlsVersions .NET のレジストリ キーを有効にした後、次の表に示すように、Windows のバージョンごとに異なる動作が発生します。
Windows のバージョンSSL2 クライアントSSL2 サーバーSSL3 クライアントSSL3 サーバーTLS 1.0 クライアントTLS 1.0 サーバーTLS 1.1 クライアントTLS 1.1 サーバーTLS 1.2 クライアントTLS 1.2 サーバー
Windows Vista SP2 および Windows Server 2008 SP2オフオンオンオンオンオンN/AN/AN/AN/A
Windows 7 SP1 と Windows Server 2008 R2 SP1オフオンオンオンオンオンオフオフオフオフ
Windows Server 2012オフオフオンオンオンオンオンオンオンオン
Windows 8.1 および Windows Server 2012 R2 オフオフオンオンオンオンオンオンオンオン
Windows 10オフオフオンオンオンオンオンオンオンオン
Windows 10 (1511)オフオフオンオンオンオンオンオンオンオン
Windows 10 (1607) および Windows Server 2016N/AN/Aオフオフオンオンオンオンオンオン