TLS システム既定のバージョンの Windows 8.1 および Windows Server 2012 R2 の.NET Framework 3.5 に含まれるサポート

適用対象: .NET Framework 3.5 Service Pack 1Windows 8.1Windows Server 2012 R2 Datacenter 詳細

.NET framework 3.5 SP1 のバージョンと以前のバージョンでは、暗号化プロトコルとトランスポート層セキュリティ (TLS) システムの既定のバージョンを使用するアプリケーションのサポートは提供されませんでした。 この更新プログラムは、.NET Framework 3.5 sp1 では、TLS のバージョン 1.2 を使用できます。
 このコンテンツが可能となって Windows の更新プログラムにします。 コンテンツを取得するには、.NET Framework の最新の更新プログラムの Windows の更新プログラムをスキャンします。 場合は、システムが完全に最新の Windows Update を使用して、アクションを実行する必要はありません。

解決方法


ダウンロード情報

以下のファイルは、Microsoft ダウンロード センターからダウンロードできます:Download x86 ベースのパッケージを今すぐダウンロードしますDownload 、X64 ベースのパッケージを今すぐダウンロードします。この領域で次の機能強化を行った。
  • コンピューターで実行されている管理対象のアプリケーションについて、ハード コーディングされた .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 を使用しているアプリケーションを使用して、プロトコルを設定することができます follows:System.Net.ServicePointManager.SecurityProtocol としての = SecurityProtocolTypeExtensions.Tls12 です。
  • SslStream AuthenticateAsClient (文字列、X509CertificateCollection、SslProtocols、ブール値)のオーバー ロードを使用しているアプリケーションは、 SslProtocolsExtensions.SslProtocolsの値を設定できます。Tls12.
最初の段落で説明したレジストリの設定には、 SslProtocols.NoneとしてSslProtocolsのアプリケーションで値が設定されて場合は、システムの既定の動作が選択するは、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オフオフオンオンオンオンオンオン