web-dev-qa-db-ja.com

.NET Framework 4.0のTLS 1.2

多数の.NET Framework 4.0 WebFormsアプリケーションを実行しているWindows Server 2008 R2サーバーがあり、TLS 1.0以前を無効にする必要があります。これを行うと、すべての安全な接続が失敗し、TLS 1.0を再度有効にする必要がありました。フレームワーク4.0環境でTLS 1.2を使用する方法はありますか?おそらく私は何かが欠けていますか?

また、使用しているバージョンCMSの制限により、現時点ではフレームワークをアップグレードできません。

57
betagreg

これを変更することがわかった唯一の方法は、コードに直接あります:

設定したアプリの最初に

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

system.netクラスを含める必要があります

Tls1もブロックする必要があるため、Webサービスを呼び出す前にこれを行いました。

31
Mike

system.netクラスライブラリにプロパティを追加できない場合。

次に、Global.asaxファイルを追加します。

ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; //TLS 1.2
ServicePointManager.SecurityProtocol = (SecurityProtocolType)768; //TLS 1.1

そして、開始行で関数内で使用できます:

ServicePointManager.SecurityProtocol = (SecurityProtocolType)768 | (SecurityProtocolType)3072;

また、TLS 1.1、TLS 1.2のみをサポートするSTRIPE支払いゲートウェイに対しても有用です。

編集:サーバーに.NET 4.5に関する非常に多くの質問をインストールしたかどうか...ここに、実動サーバー上のRegistryのスクリーンショットがあります。

。NET framework 4.0のみがインストールされています。

registry

69
Vikrant

レジストリで次の変更を行うと、機能するはずです。

1.) 。NET Frameworkの強力な暗号化 レジストリキー

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001

2.) セキュアチャネル(Schannel)TLS 1.2 レジストリキー

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001
51
Aditya Landge

this に従って、.NET 4.5がインストールされている必要があります。詳細については、ウェブページをご覧ください。その要点は、.NET 4.5をインストールした後、4.0アプリが4.5 System.dllを使用することです。次の2つの方法でTLS 1.2を有効にできます。

  • アプリケーションの開始時に、次のコードを追加します。ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
  • レジストリキーHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319: SchUseStrongCryptoDWORD 1に設定します
22
BrainStorm.exe

VBでコーディングし、Application_Start内のGlobal.asax.vbファイルに次の行を追加できました

ServicePointManager.SecurityProtocol = CType(3072, SecurityProtocolType)    'TLS 1.2
4
user2721607

Windowsにインストールされた.NET Framework 4.0でも同じ問題に遭遇します。
そして、私は 。NET Framework 4.6.2 をインストールすることでこの問題を解決しました。
または、 最新のパッケージ をダウンロードして試してください。

0
Krain Chen