多数の.NET Framework 4.0 WebFormsアプリケーションを実行しているWindows Server 2008 R2サーバーがあり、TLS 1.0以前を無効にする必要があります。これを行うと、すべての安全な接続が失敗し、TLS 1.0を再度有効にする必要がありました。フレームワーク4.0環境でTLS 1.2を使用する方法はありますか?おそらく私は何かが欠けていますか?
また、使用しているバージョンCMSの制限により、現時点ではフレームワークをアップグレードできません。
これを変更することがわかった唯一の方法は、コードに直接あります:
設定したアプリの最初に
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
system.net
クラスを含める必要があります
Tls1もブロックする必要があるため、Webサービスを呼び出す前にこれを行いました。
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のみがインストールされています。
レジストリで次の変更を行うと、機能するはずです。
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
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: SchUseStrongCrypto
をDWORD 1
に設定しますVBでコーディングし、Application_Start内のGlobal.asax.vbファイルに次の行を追加できました
ServicePointManager.SecurityProtocol = CType(3072, SecurityProtocolType) 'TLS 1.2
Windowsにインストールされた.NET Framework 4.0でも同じ問題に遭遇します。
そして、私は 。NET Framework 4.6.2 をインストールすることでこの問題を解決しました。
または、 最新のパッケージ をダウンロードして試してください。