2017-09-28 91 views
2

我們有要求在所有服務器上使用TLS1.2。這意味着使用下面的註冊表設置強制使用TLS1.2系統。當我設置這些設置並重新啓動服務器時,在BizTalk管理器中展開BizTalk組菜單時出現以下錯誤消息。在這個特定的環境中,一切都在一個操作系統/服務器上運行。請記住,如果我在註冊表中啓用TLS1.0,一切正常。BizTalk 2016管理員失敗,強制tls1.1 +

我讀過幾篇文章,聲稱從.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服務器2016 的BizTalk版本:企業的BizTalk CU3 2016 .NET 4.7版本

+0

詳細介紹您是否仍可打開SSMS和查詢數據庫? –

+0

是的,似乎是BizTalk本身正在使用的OLEDB驅動程序。試圖找出如何確定OLEDB驅動程序的版本,也許更新... – Bee

+0

據來自微軟的人[這裏]回覆(https://social.technet.microsoft。com/Forums/security/zh-CN/08cd1188-4de4-4de0-9cc0-f951c61db9f6/could-not-establish-secure-channel-for-ssltls-with-authority-tls1testsalesforcecom?forum = biztalkgeneral),BizTalk核心不兼容沒有TLS1.0。這對我們來說是一個不爭的事實...... – Bee

回答

1

更新:隨着Feature Pack 2 for BizTalk 2016,它被支持。

原來的答覆 可惜你不能做到這一點,按照微軟的答案被Rajshekher-BT在Does BizTalk Server 2013 support TLS1.2?見下文。

我提出它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),所以對於任何WCF發送需要TLS 1.2端口,使用WCF的自定義內的自定義端點行爲設置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