无法创建SSL/TLS安全通道。客户端和服务器无法通信,因为它们没有共同的算法。

6

一些背景信息:我正在开发一个网页,使用SOAP连接到一个Web服务。当我调用该Web服务的方法时,出现以下错误:

请求被中止:无法创建SSL/TLS安全信道。因此,我添加了以下代码行:

ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

我的服务器中存有他们的证书,并且他们也将我的证书存储并添加到白名单中以允许通过。但我在尝试进行身份验证时却收到了以下消息。

System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a receive. ---> System.ComponentModel.Win32Exception: The client and server cannot communicate, because they do not possess a common algorithm

我已经设置了Trace,这是Trace文件的样子。我遇到了一个问题,不确定下一步该怎么做。非常感谢您的帮助。

[Public Key]
  Algorithm: RSA
  Length: 2048
  Key Blob: 30 82 01 0a 02 82 01 01 00 ce 08 11 55 52 0c 94 64 dc fe 1b e6 37 2e 1c 7a f1 3c 5d 24 67 d7 8e 76 58 78 64 30 d8 7d a3 e7 f2 0a c1 6b 33 91 7f 21 e6 a3 46 32 91 95 05 c6 46 05 43 ac 84 79 32 d5 ab 0f 0b 38 d1 9f 18 ab c3 82 dd 9d 98 ab 00 17 17 60 c0 c6 df 98 32 66 22 39 7b f5 fb e2 ed e2 a5 20 a7 48 0e 1b c6 43 2c 5b 81 85 69 2b 02 1e 40 77 9c 90 ea 25 81 f1 49 4d ed dd ....
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.2747506Z
System.Net Information: 0 : [6072] SecureChannel#42430754 - Certificate is of type X509Certificate2 and contains the private key.
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.2747506Z
System.Net Information: 0 : [6072] AcquireCredentialsHandle(package = Microsoft Unified Security Protocol Provider, intent  = Outbound, scc     = System.Net.SecureCredential)
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.2747506Z
System.Net Error: 0 : [6072] AcquireCredentialsHandle() failed with error 0X80090331.
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.2747506Z
System.Net Information: 0 : [6072] AcquireCredentialsHandle(package = Microsoft Unified Security Protocol Provider, intent  = Outbound, scc     = System.Net.SecureCredential)
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.2747506Z
System.Net Error: 0 : [6072] AcquireCredentialsHandle() failed with error 0X80090331.
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.2747506Z
System.Net.Sockets Verbose: 0 : [6072] Socket#14502061::Dispose()
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.2747506Z
System.Net Error: 0 : [6072] Exception in the HttpWebRequest#11181865:: - The underlying connection was closed: An unexpected error occurred on a receive.
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.2747506Z
System.Net Error: 0 : [6072] Exception in the HttpWebRequest#11181865::GetResponse - The underlying connection was closed: An unexpected error occurred on a receive.
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.2747506Z
System.Net Information: 0 : [6072] Enumerating security packages:
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.6335529Z
System.Net Information: 0 : [6072]     Negotiate
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.6335529Z
System.Net Information: 0 : [6072]     NegoExtender
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.6335529Z
System.Net Information: 0 : [6072]     Kerberos
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.6491530Z
System.Net Information: 0 : [6072]     NTLM
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.6491530Z
System.Net Information: 0 : [6072]     Schannel
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.6491530Z
System.Net Information: 0 : [6072]     Microsoft Unified Security Protocol Provider
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.6491530Z
System.Net Information: 0 : [6072]     WDigest
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.6491530Z
System.Net Information: 0 : [6072]     TSSSP
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.6491530Z
System.Net Information: 0 : [6072]     pku2u
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.6491530Z
System.Net Information: 0 : [6072]     CREDSSP
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.6491530Z
System.Net Information: 0 : [6072] AcquireDefaultCredential(package = Negotiate, intent  = Outbound)
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.6491530Z
System.Net Information: 0 : [6072] InitializeSecurityContext(credential = System.Net.SafeFreeCredential_SECURITY, context = (null), targetName = host/localhost, inFlags = MutualAuth, Confidentiality, Connection, AcceptIntegrity)
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.6491530Z
System.Net Information: 0 : [6072] InitializeSecurityContext(In-Buffers count=0, Out-Buffer length=125, returned code=ContinueNeeded).
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.6491530Z
System.Net Information: 0 : [6072] InitializeSecurityContext(credential = System.Net.SafeFreeCredential_SECURITY, context = 23570c30:235e9b58, targetName = host/localhost, inFlags = MutualAuth, Confidentiality, Connection, AcceptIntegrity)
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.6491530Z
System.Net Information: 0 : [6072] InitializeSecurityContext(In-Buffers count=1, Out-Buffer length=121, returned code=ContinueNeeded).
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.6491530Z
System.Net Information: 0 : [6072] InitializeSecurityContext(credential = System.Net.SafeFreeCredential_SECURITY, context = 23570c30:235e9b58, targetName = host/localhost, inFlags = MutualAuth, Confidentiality, Connection, AcceptIntegrity)
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.6491530Z
System.Net Information: 0 : [6072] InitializeSecurityContext(In-Buffers count=1, Out-Buffer length=0, returned code=OK).
    ProcessId=3704
    DateTime=2013-01-30T20:51:25.6491530Z
1个回答

5

来自Trustwave

  1. 在安装该服务的系统上,导航到控制面板
  2. 选择管理工具,然后选择本地安全策略
  3. 导航到本地策略安全选项
  4. 双击系统密码学:使用符合FIPS标准的算法进行加密、散列和签名
  5. 禁用该设置,然后单击应用
  6. 重新启动IIS服务。

@Chad,如果它解决了问题,您可以将我的答案标记为正确。 - Josh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接