TLS 1.2错误无法创建SSL / TLS安全通道

问题描述 投票:1回答:2

我正在尝试使用.Net 4.5.2将Salesforce与.Net API集成。我的API运行在具有Windows 2008 R2和我在互联网属性TLS 1.2中检查的服务器上也检查了我从this link检查并且我得到了Probably Ok。这意味着我的服务器中启用了TLS 1.2。

在.Net API中,我添加了以下代码

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

当我尝试连接时,我得到以下错误

The request was aborted: Could not create SSL/TLS secure channel.

为了测试我开始使用ASP.net web与这个API集成,我确实得到相同的错误但是如果我更改上面的代码以允许所有协议

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3
  | SecurityProtocolType.Tls
  | SecurityProtocolType.Tls11
  | SecurityProtocolType.Tls12;

我没有收到任何错误,我可以连接到我的API。这解释了我的服务器无法在TLS 1.2上建立连接。我错过了什么?

asp.net ssl .net-4.5 tls1.2
2个回答
2
投票

看起来问题出在客户端,而不是服务器。你可以看到Microsoft blogs suggest正是你已经使用过的代码:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12

对于机器上安装了4.5的.Net 4.0,您可以使用:

ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;

对于早期版本的.Net,有一些补丁可以使用TLS 1.2。

相关问题:


1
投票

我面临着类似的付款交易问题。仅通过注册表更改解决问题,无需更改代码。 Web实例(服务器)托管在Microsoft Azure中。使用的是.NET 4.5版。使用BPOINT和PayPal的支付API。以下是为解决此问题而执行的注册表更改:

步骤1:在客户端和服务器上启用TLS1.2

REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" /v Enabled /t REG_DWORD /d 00000001 /f    
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" /v DisabledByDefault /t REG_DWORD /d 00000000 /f  
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /v Enabled /t REG_DWORD /d 00000001 /f    
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /v DisabledByDefault /t REG_DWORD /d 00000000 /f

步骤2:在客户端和服务器上禁用TLS1.1

REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" /v Enabled /t REG_DWORD /d 00000000 /f    
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" /v DisabledByDefault /t REG_DWORD /d 00000001 /f  
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" /v Enabled /t REG_DWORD /d 00000000 /f    
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" /v DisabledByDefault /t REG_DWORD /d 00000001 /f

步骤3:为.NET框架启用强加密

REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v4.0.30319" /v SchUseStrongCrypto /t REG_DWORD /d 00000001 /f
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NetFramework\v4.0.30319" /v SchUseStrongCrypto /t REG_DWORD /d 00000001 /f
© www.soinside.com 2019 - 2024. All rights reserved.