【问题标题】:TLS 1.2 error Could not create SSL/TLS secure channelTLS 1.2 错误 无法创建 SSL/TLS 安全通道
【发布时间】:2018-04-06 08:26:20
【问题描述】:

我正在尝试使用 .Net 4.5.2 将 Salesforce 与 .Net API 集成。我在具有 Windows 2008 R2 的服务器上运行的 API 并且我检查了 Internet 属性 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


【解决方案1】:

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

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12

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

ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;

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

相关问题:

【讨论】:

    【解决方案2】:

    我在支付交易中遇到了类似的问题。仅通过更改注册表而无需更改代码即可解决问题。 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
    

    【讨论】:

      猜你喜欢
      • 2017-05-25
      • 2018-08-12
      • 1970-01-01
      • 1970-01-01
      • 2021-12-13
      • 2014-12-26
      • 2017-02-10
      • 2017-08-22
      • 2016-08-03
      相关资源
      最近更新 更多