BizTalk 2016管理员使用强制tls1.1+失败;

BizTalk 2016管理员使用强制tls1.1+失败;,biztalk,biztalk-2016,Biztalk,Biztalk 2016,我们要求在所有服务器上使用TLS1.2。这意味着使用下面的注册表设置强制TLS1.2系统范围。设置这些设置并重新启动服务器时,在BizTalk Administrator中展开BizTalk组菜单时,会收到以下错误消息。在这个特定的环境中,所有东西都在一个操作系统/服务器上运行。请记住,如果我在注册表中启用TLS1.0,一切正常 我读过几篇文章说,自从.NET4.5以来,TLS1.1/1.2一直受到支持,所以…这里的问题是什么 操作系统:Windows Server 2016 SQL版本:S

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

我读过几篇文章说,自从.NET4.5以来,TLS1.1/1.2一直受到支持,所以…这里的问题是什么

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

更新:支持使用或

原始答案 不幸的是,你无法做到这一点,正如微软的Rajshekher BT在下文中的回答

我在用户语音上提高了它(但那个网站现在已经不存在了)

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

一些web服务器可能会尝试协商,而另一些服务器在第一次尝试时失败。如果在不同的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自定义发送端口内的自定义端点行为设置System.Net.ServicePointManager.SecurityProtocol属性

如果要允许回退逻辑,可以按如下方式选择:
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是一个全局进程设置


就我个人而言,我使用了可配置的端点行为,如

中所述。您仍然能够打开SSM并查询数据库吗?是的,似乎是BizTalk本身正在使用的OLEDB驱动程序。试图找出如何确定OLEDB驱动程序的版本并可能对其进行更新…根据Microsoft人员的回复,没有TLS1.0,BizTalk core是不兼容的。这对我们来说是一个很好的例子……我们所做的是编写自定义端点行为,在需要它的发送端口上设置TSL版本。最初,请遵循此帖子将Sales Force OAuth组件更改为独立组件。我问过我是否可以开放源码,等待批准。另请看Rajshekher BT的最终答案
[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