我正在尝试访问使用双向SSL加密的WCF Web服务。当我尝试拨打该服务时,我得到了一个
System.ServiceModel.Security.SecurityNegotiationException:无法为具有权限“XXX.xx”的SSL / TLS建立安全通道。 ---> System.Net.WebException:请求已中止:无法创建SSL / TLS安全通道。
我尝试过激活线鲨,看看发送到服务器和从服务器发送的内容:我看到客户端问候和服务器问候。但是没有客户端响应服务器你好。我在期待
“证书。客户端密钥交换。更改密码。加密握手消息”
包,但没有发送。我认为这是服务器发送的证书的问题,不知何故我的客户端服务器没有把它弄乱。
这是我已经尝试过的: 我已经通过适当的权限创建了证书,但我可能在证书请求中犯了一个错误而不知道它。 我已将两个根证书添加到:受信任的根证书,受信任的发布者和受信任的人。我还将客户端证书添加到受信任的人。我的同事已经成功地在win 2008服务器上建立连接(我使用的是2003,因为它有一些奇怪的原因是必要的 - 不要问)。我看不出我们的方法有什么不同,所以我有点迷失。
非常感谢任何帮助。
答案 0 :(得分:2)
我解决了这个问题:
事实证明,app-pool对证书的私钥没有读取权限。我们将应用程序池更改为本地系统(我相信),它解决了问题。