bet*_*reg 62 asp.net .net-4.0 windows-server-2008-r2 tls1.2
我有一台运行十几个.NET Framework 4.0 WebForms应用程序的Windows Server 2008 R2服务器,我需要禁用TLS 1.0及更低版本.当我这样做时,所有安全连接都失败了,我被迫重新启用TLS 1.0.有没有办法在框架4.0环境中使用TLS 1.2?也许我错过了什么?
此外,由于我们使用的CMS版本的限制,我们目前无法升级Framework.
Vik*_*ant 80
如果您无法向system.net类库添加属性.
然后,添加Global.asax文件:
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; //TLS 1.2
ServicePointManager.SecurityProtocol = (SecurityProtocolType)768; //TLS 1.1
Run Code Online (Sandbox Code Playgroud)
你可以在一个函数中使用它,在起始行:
ServicePointManager.SecurityProtocol = (SecurityProtocolType)768 | (SecurityProtocolType)3072;
Run Code Online (Sandbox Code Playgroud)
并且,它对STRIPE支持网关非常有用,支持网关仅支持TLS 1.1,TLS 1.2.
编辑:
在我的服务器上安装了很多关于.NET 4.5的问题之后......这是Registry我生产服务器上的屏幕截图:
我只安装了.NET framework 4.0.

Adi*_*dge 57
在您的注册表中进行以下更改,它应该工作:
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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
小智 35
我发现改变它的唯一方法是直接在代码上:
在您设置的应用程序的最开始
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
Run Code Online (Sandbox Code Playgroud)
你应该包括这个system.net班级
我在调用Web服务之前这样做了,因为我们也必须阻止tls1.
Bra*_*exe 25
根据这个,你需要.NET 4.5安装.有关详细信息,请访问该网页.它的要点是,安装.NET 4.5后,您的4.0应用程序将使用4.5 System.dll.您可以通过两种方式启用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
Run Code Online (Sandbox Code Playgroud)
有两种可能的情况,
如果您的应用程序在 .net framework 4.5 或更低版本上运行,并且您可以轻松地将新代码部署到生产中,那么您可以使用以下解决方案。
您可以在进行 API 调用之前添加以下代码行,
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; // .NET 4.5
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; // .NET 4.0
Run Code Online (Sandbox Code Playgroud)
如果您无法部署新代码,并且希望使用生产中存在的相同代码解决问题,那么您有两种选择。
选项 1:
[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
Run Code Online (Sandbox Code Playgroud)
然后创建一个带有扩展名的文件.reg并安装。
注意:此设置将应用于注册表级别,适用于该计算机上存在的所有应用程序,如果您只想限制为单个应用程序,则可以使用Option 2
选项 2:这可以通过更改配置文件中的一些配置设置来完成。您可以在配置文件中添加。
<runtime>
<AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=false"/>
</runtime>
Run Code Online (Sandbox Code Playgroud)
或者
<runtime>
<AppContextSwitchOverrides value="Switch.System.Net.DontEnableSystemDefaultTlsVersions=false"
</runtime>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
91086 次 |
| 最近记录: |