我正在尝试使用.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上建立连接。我在这里错过了什么?
答案 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