メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

.NET Framework バージョン 3.5 以前のバージョンは、暗号化プロトコルとしてトランスポート層セキュリティ (TLS) のシステム既定バージョンを使用するアプリケーションをサポートしていませんでした。 この更新プログラムを適用すると、.NET Framework 3.5 で TLS v1.2 を使用できるようになります。

注意 このコンテンツは、更新プログラムでWindowsされています。 コンテンツを取得するには、更新プログラムWindows最新の更新プログラムを.NET Frameworkします。 更新プログラムを使用してシステムが完全に最新Windows場合は、それ以上のアクションを実行する必要はありません。

解決方法

ダウンロード情報

KB3154519 に対応する修正プログラムは、KB3154519 に含まれているすべての修正プログラムを含む .NET Framework の最新の更新プログラムに置き換えられます。 最新の更新プログラムをインストール.NET Framework

この領域では、次の点が改善されています。

  • コンピューターで実行されている管理対象のアプリケーションについて、ハード コーディングされた .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 が特定の値に設定されている場合、または SslStream.AuthenticateAs* API を使用して特定の SslProtocols 列挙型が指定されている場合、レジストリ設定の動作は実行されません。

  • さらに、.NET Framework バージョン 2.0 SP2 を対象とする場合に、TLS v1.2、TLS v1.1、ServicePointManager.SecurityProtocol プロパティのオペレーティング システムの既定値を設定するオプションとして使用できる SslProtocolsExtensions 列挙型が追加されました。 (拡張機能の使い方については、「開発者向けガイダンス」セクションを参照してください)。

    なお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 Microsoft がウイルスをスキャンしたオンライン サービスから Microsoft サポート ファイルを取得する方法。 配布ファイルはセキュリティで保護されたサーバー上に置かれており、権限のない第三者が無断でファイルを変更できないようになっています。 配布ファイルはセキュリティで保護されたサーバー上に置かれており、権限のない第三者が無断でファイルを変更できないようになっています。

開発者向けガイダンス

新しい拡張機能の定義は、次のファイルに含まれます。
 

  • SecurityProtocolTypeExtensions.csnamespace System.Net
    {
    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.csnamespace System.Security.Authentication
    {
    public static class SslProtocolsExtensions
    {
    public const SslProtocols Tls12 = (SslProtocols)0x00000C00;
    public const SslProtocols Tls11 = (SslProtocols)0x00000300;
    }
    }

TLS v1.2 のサポートを含めるには、プロジェクトにソース ファイルを含め、次の方法を使用してプロトコルのバージョンを設定します。
 

  • ServicePointManager ベースの API を使用するアプリケーションでは、次のコマンドを使用してプロトコルを設定できます。

    System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolTypeExtensions.Tls12;

  • SslStream AuthenticateAsClient(String, X509CertificateCollection, SslProtocols, Boolean) オーバーロードを使用しているアプリケーションでは、SslProtocolsExtensions.Tls12 として SslProtocols 値を設定できます。

最初の段落に記載されているレジストリ設定が設定され、アプリケーションで SslProtocols 値が SslProtocols.None として設定されている場合、選択されるシステムの既定の動作は Windows バージョンによって異なります。

また、.NET Framework 3.5 SP1 で TLS v1.2 のサポートを有効にするためにアプリケーション コードを変更する場合は、この修正プログラムがデプロイされていないコンピューターで次の例外に対処する必要があります。
 

  1. 修正プログラムがインストールされていない場合、アプリケーションが ServicePointManager.SecurityProtocol を呼び出して新しい値を設定すると、ServicePointManager ベースの API (HTTP、FTP、SMTP) は "System.NotSupportedException: 要求されたセキュリティ プロトコルはサポートされていません" をスローします。

  2. 修正プログラムがインストールされていない場合、SslStream ベースの API は、AuthenticateAs* API のいずれかを呼び出す際に例外をスローします。

    System.ArgumentException: 指定された値が 'SslProtocolType' 列挙型で無効です。
    パラメーター名: sslProtocolType

注意 SslStream の場合のみ、Tls12、Tls11 と既存の Tls、Ssl3、Ssl2 の組み合わせ (例: 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 の手順に従います。

注意 TLS v1.1 と v1.2 は、Windows Vista または Windows Server 2008 では使用できません。

特定のアプリケーションの "解決" セクションに記載されているレジストリ キーによって設定されているオペレーティング システムの既定値を無効にする必要がある場合は、>> DWORD 0
ファイルの .exe の完全パス: HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\v2.0.50727\System.Net.ServicePointManager.SystemDefaultTlsVersions
<<レジストリ キーを追加します。 C:\MyApp\MyApp.exe DWORD 0

TLS v1.2 の詳細については、 TLS v1.2 の概要に関するページを参照してください

SystemDefaultTlsVersions .NET レジストリ キーを有効にした後、次の表に示すように、Windows のバージョンごとに異なる動作が発生します。
 

Windows のバージョン

SSL2 クライアント

SSL2 サーバー

SSL3 クライアント

SSL3 Server

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

オフ

オン

オン

オン

オン

オン

対象外

対象外

対象外

対象外

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 2016

対象外

対象外

オフ

オフ

オン

オン

オン

オン

オン

オン

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×