BizTalk 2016管理员因强制tls1.1 +而失败

时间:2017-09-28 21:14:09

标签: biztalk biztalk-2016

我们要求在所有服务器上使用TLS1.2。这意味着使用下面的注册表设置强制TLS1.2系统范围。当我设置这些设置并重新启动服务器时,我在BizTalk Administrator中展开BizTalk组菜单时收到以下错误消息。在这个特定的环境中,一切都在一个操作系统/服务器上运行。请记住,如果我在注册表中启用TLS1.0,一切正常。

我已经阅读了几篇文章,说明自.NET 4.5以来,TLS1.1 / 1.2都受到支持,所以......这里的问题是什么?

BizTalk Administrator Failure enter image description here

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client]
"DisabledByDefault"=dword:00000001
"Enabled"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server]
"DisabledByDefault"=dword:00000001
"Enabled"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]

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

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

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319]
"AspNetEnforceViewStateMac"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"AspNetEnforceViewStateMac"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

操作系统:Windows Server 2016 SQL版本:SQL Server 2016 BizTalk版本:BizTalk Enterprise 2016 CU3 .NET版本4.7

1 个答案:

答案 0 :(得分:1)

更新:使用Feature Pack 2 for BizTalk 2016,它受支持。

原始回答 不幸的是,根据微软在Does BizTalk Server 2013 support TLS1.2?中的Rajshekher-BT的回答,你不能这样做。

我在User Voice

上提出了它
  

BizTalk核心引擎需要TLS 1.0才能运行主机,因此您无法在注册表中禁用TLS。但是,您可以同时启用TLS 1.0和TLS 1.2,并让基于.NET / WCF的适配器更喜欢使用带有SchUseStrongCrypto = 1注册表项的TLS 1.2。

     

某些网络服务器可能会尝试协商,而其他网络服务器则首次尝试失败。如果您在不同的WCF http端点中具有不同的TLS设置,则可以使用WCF自定义行为进行设置。然后,您应该将所有TLS 1.0保留在一个主机中,并将所有TLS 1.2集成端点保留在另一个主机中使用   1.确保启用TLS 1.0和TLS 1.2   2.不要设置SchUseStrongCrypto注册表项   3.此时的默认行为是TLS 1.0(回退到SSL3),因此对于任何需要TLS 1.2的WCF发送端口,使用WCF-Custom发送端口中的自定义端点行为设置System.Net.ServicePointManager.SecurityProtocol属性。

     

如果要允许回退逻辑,可以按如下方式进行OR运算:   System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12 | System.Net.SecurityProtocolType.Tls11 | System.Net.SecurityProtocolType.Tls | System.Net.SecurityProtocolType.Ssl3;
  最好为TLS 1.0提供一个自定义行为,为TLS 1.2提供一个自定义行为,这样您就可以明确地知道自己使用了什么,并且当某些内容发生变化时它会失败。确保不要在同一主机中混合使用不同的WCF行为,因为ServicePointManager是一个全局流程设置。

我个人使用了Salesforce disabling TLS 1.0 – How to get it working for API calls via BizTalk

中详述的可配置端点行为