SSL证书:无客户端证书密钥交换

时间:2010-05-06 09:31:40

标签: c# wcf certificate ssl-certificate

我正在尝试访问使用双向SSL加密的WCF Web服务。当我尝试拨打该服务时,我得到了一个

System.ServiceModel.Security.SecurityNegotiationException:无法为具有权限“XXX.xx”的SSL / TLS建立安全通道。 ---> System.Net.WebException:请求已中止:无法创建SSL / TLS安全通道。

我尝试过激活线鲨,看看发送到服务器和从服务器发送的内容:我看到客户端问候和服务器问候。但是没有客户端响应服务器你好。我在期待

“证书。客户端密钥交换。更改密码。加密握手消息”

包,但没有发送。我认为这是服务器发送的证书的问题,不知何故我的客户端服务器没有把它弄乱。

这是我已经尝试过的: 我已经通过适当的权限创建了证书,但我可能在证书请求中犯了一个错误而不知道它。 我已将两个根证书添加到:受信任的根证书,受信任的发布者和受信任的人。我还将客户端证书添加到受信任的人。我的同事已经成功地在win 2008服务器上建立连接(我使用的是2003,因为它有一些奇怪的原因是必要的 - 不要问)。我看不出我们的方法有什么不同,所以我有点迷失。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

我解决了这个问题:

事实证明,app-pool对证书的私钥没有读取权限。我们将应用程序池更改为本地系统(我相信),它解决了问题。