When configuring FTPS in BizTalk Server 2010, there is an error "The client and server cannot communicate, because they do not possess a common algorithm"
Problem Description
==================
When configuring the new feature FTPS adapter (receive or send) to connect FTP server in BizTalk Server 2010, there may raise the following error in the event log on BizTalk Server:
“The client and server cannot communicate, because they do not possess a common algorithm”
Problem Analysis
================
We collect dump files forBTSNTSvc.exe when reproducing this issue, and we have the following information.
The status code 0x80090331 means SEC_E_ALGORITHM_MISMATCH.
In addition, after we look into the source code, from the parameters which was passed to sspicli!AcquireCredentialsHandleW by the BizTalk xceedftpbiztalk module, we could see BizTalk FTPS only support TLS v1. So the problem is caused by that TLS v1 is disabled in the BizTalk Server box.
0:027> p
Time Travel Position:
FE3840000296.
eax=80090331 ebx=00000000
ecx=01a55038 edx=00000001 esi=5d02a0e8 edi=01a54c88
eip=74b3151e esp=254cebd4
ebp=254cebd4 iopl=0 nv up ei pl
zr na pe nc
cs=0023 ss=002b
ds=002b es=002b fs=0053
gs=002b
efl=00000246
sspicli!AcquireCredentialsHandleW+0x27:
74b3151e
5d
pop ebp
0:027> !gle
LastErrorValue: (Win32) 0x1
(1) - Incorrect function.
LastStatusValue: (NTSTATUS) 0x80090331 - The client and server cannot
communicate, because they do not possess a common algorithm.
0:027> gu
Time Travel Position:
FE384000006A.
eax=80090331 ebx=00000000
ecx=768d0175 edx=1bf364e0 esi=00000000 edi=00000000
eip=74b253d8 esp=254cea84
ebp=254ceb10 iopl=0 nv up ei pl
nz na pe nc
cs=0023 ss=002b
ds=002b es=002b fs=0053
gs=002b
efl=00000206
sspicli!SspipAcquireCredentialsHandle+0xf9:
74b253d8
8945e0
mov dword ptr [ebp-20h],eax ss:002b:254ceaf0=254ceb10
0:027> k
ChildEBP RetAddr
254ceb10 74b2dccf sspicli!SspipAcquireCredentialsHandle+0xf9
[d:\w7rtm\minio\security\base\lsa\security\sspiwrap.cxx @ 196]
254ceb68 74b3030b
sspicli!LsaAcquireCredentialsHandleW+0x8e [d:\w7rtm\minio\security\base\lsa\security\sspicli\lsastubs.cxx
@ 581]
254ceba4 74b3151e
sspicli!AcquireCredentialsHandleCommon+0xce
[d:\w7rtm\minio\security\base\lsa\security\sspicli\newstubs.cxx @ 592]
254cebd4 5d01fc86
sspicli!AcquireCredentialsHandleW+0x27 [d:\w7rtm\minio\security\base\lsa\security\sspicli\newstubs.cxx
@ 463]
254cec54 5d02037d
xceedftpbiztalk!CXwlSslSocketWrapper::GetClientCredentials+0xc9
[d:\bt\9359137\private\source\runtime\msg\adapters\ftp\xceedftp\winsock\xwlsslsocketwrapper.cpp
@ 183]
254cec80 5d0128dd
xceedftpbiztalk!CXwlSslSocketWrapper::SetupTLS+0x51
[d:\bt\9359137\private\source\runtime\msg\adapters\ftp\xceedftp\winsock\xwlsslsocketwrapper.cpp
@ 303]
254ced18 5d0100c5
xceedftpbiztalk!CXceedFtp::ConnectPerformer+0x341 [d:\bt\9359137\private\source\runtime\msg\adapters\ftp\xceedftp\activex\xceedftpperformers.cpp
@ 473]
254ced60 1be164d6
xceedftpbiztalk!CXceedFtp::Connect+0xf3
[d:\bt\9359137\private\source\runtime\msg\adapters\ftp\xceedftp\activex\xceedftpmethods.cpp
@ 332]
254cedcc 1be16309
DomainBoundILStubClass.IL_STUB_CLRtoCOM()+0x86
254cee10 1be13fe5
Microsoft_BizTalk_CoreAdapter!Microsoft.BizTalk.Adapter.FtpAdapter.FtpUtil.Connect(XceedFtpLib.XceedFtp,
System.String, System.String)+0x29
[d:\bt\9359137\private\source\Runtime\Msg\Adapters\Ftp\Runtime\FtpUtil.cs @
201]
254cef18 1be12ec6
Microsoft_BizTalk_CoreAdapter!Microsoft.BizTalk.Adapter.FtpAdapter.FtpReceiverEndpoint.EndpointTask()+0x235
[d:\bt\9359137\private\source\Runtime\Msg\Adapters\Ftp\Runtime\FtpReceiverEndpoint.cs
@ 325]
254cef60 1be129ba
Microsoft_BizTalk_CoreAdapter!Microsoft.BizTalk.Adapter.FtpAdapter.FtpReceiverEndpoint.ControlledEndpointTask()+0x56
[d:\bt\9359137\private\source\Runtime\Msg\Adapters\Ftp\Runtime\FtpReceiverEndpoint.cs
@ 251]
254cef8c 1be12838 Microsoft_BizTalk_BaseAdapter!Microsoft.BizTalk.Adapter.Common.SimpleTask.Start()+0x2a
[d:\bt\9359137\private\source\Runtime\Msg\Adapters\BaseAdapter\SimpleTask.cs @
45]
254cefb8 1be1256d
Microsoft_BizTalk_Scheduler_Runtime!Microsoft.BizTalk.Scheduler.TaskController.StartTask()+0x28
[d:\bt\9359137\private\source\Runtime\Scheduler\Runtime\TaskController.cs @
638]
254cefc4 1be1241e
Microsoft_BizTalk_Scheduler_Runtime!Microsoft.BizTalk.Scheduler.TaskController+StartPendingState.OnThreadAvailable(Microsoft.BizTalk.Scheduler.TaskController)+0x1d
Problem Resolution
=================
Please check the following registry key in your BizTalk Server box to see if there is any TLS v1 registry key been disabled, that means the value is 0. If so, please change the TLS 1.0 Client registry key value to 1, that enable TLS 1.0 for client.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS1.0\Client