检查Windows Server 2008R2是否可以使用TLS 1.2

因为SalesForce下周将下载TLS 1.0,所以我们不得不在我们的API调用中使用TLS 1.1或1.2,我们使用SSIS定制的CozyRoc组件从Windows Server 2008R2中抽取DWH的数据。 我们安装了这些修补程序,并确保registry具有要求的条目,正如本文所述。 尽pipe我们没有给SCHANNEL添encryption钥,但现在列出的唯一协议是SSL 2.0。

接下来,在重新启动之后,我用Wiresharklogging了一个跟踪信息,发现SSIS包中的CozyRoc组件使用了TLS 1.0,就像在Server Hello消息中我们在握手协议部分获得了TLS 1.0一样。 构build调用的CozyRoc组件支持TLS 1.2。

我的问题是:如何testing我们的服务器是否可以使用TLS 1.2与SalesForce进行通信? 我知道禁用TLS 1.0可能会弄乱其他连接,所以我不想这样做。 理想情况下,我想知道我的SSIS包使用TLS 1.2。

更新:我试图连接到我们的testingSalesforce站点,在此TLS 1.0被禁用。 现在尝试连接时,我收到一个错误说

“UNSUPPORTED_CLIENT:该组织已禁用TLS 1.0。使用https。(System.Web.Services)连接到Salesforce时,请使用TLS 1.1或更高版本”

我仍然不知道如果责怪我的服务器设置或CozyRoc组件,所以我现在正在寻找任何方式来确保TLS 1.2在服务器上工作,独立于SSIS设置。 有任何想法吗?

请注意,在Windows 2008中,默认情况下TLS 1.2是禁用的(请参阅此处 )。 因此,您需要根据registry更改启用它(请参阅下文),还需要了解有一个客户端configuration和一个服务器configuration。 因此,例如,如果您在客户端级别启用TLS 1.2,而不是在服务器级别上,则针对端口443的nMAP将不会显示TLS 1.2已启用,因为它只能启用客户端。

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] "Enabled"=dword:ffffffff "DisabledByDefault"=dword:00000000 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] "Enabled"=dword:ffffffff "DisabledByDefault"=dword:00000000 

您在这里所需要的几乎不取决于您的应用程序以及它如何与远程服务进行交互。 因此,举例来说,如果第三方应用程序将对您的环境使用https会话,那么这将是一个服务器端configuration。 但是,如果您有第三方插件运行作为服务执行连接对第三方服务器,那么这是一个客户端configuration。

另外还有一个修补程序,它允许使用WinHTTP进行安全套接字层(SSL)连接编写的应用程序和服务使用您应该安装的TLS 1.1或TLS 1.2协议(由于这是较早的修复程序,因此尚未完成;请参阅此处 )。

另外,如果第三方组件没有从Microsoft SCHANNEL实现中使用,则registry端的任何更改都将不起作用。 因为可能是第三方组件正在使用另一个SSL实现,如OpenSSL。 在这种情况下,您需要联系供应商,以了解如何在此处启用TLS 1.2。 例如,使用Java组件(例如TomCat)也是如此。 然后调整Microsoft SCHANNEL实现不会影响它们。

SalesForce本身具有非常好的文档,可以在这里给出更多的细节。 所以你应该检查一下(见这里 )。 另外他们提供了多个“如何testing”的方式来testingTLSconfiguration,然后您可以执行。

我的问题的答案非常简单,访问https://www.howsmyssl.com/就足够了。 另外,Wireshark跟踪表明我的服务器使用TLS 1.2在testing连接时与Salesforce站点交换握手。

在我的情况下瓶颈是Cozyroc SSIS +版本 – 目前它是1.6.103,你至less需要1.6.104使用TLS 1.1或更高版本,所以一定要检查。