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

时间:2017-10-25 09:47:58

标签: asp.net ssl .net-4.5 tls1.2

我正在尝试使用.Net 4.5.2将Salesforce与.Net API集成。我检查了在Windows 2008 R2和我在互联网属性TLS 1.2中检查的服务器上运行的API,我已经从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上建立连接。我在这里错过了什么?

2 个答案:

答案 0 :(得分:2)

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

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12

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

ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;

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

相关问题:

答案 1 :(得分:1)

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

步骤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