0

我有一个托管在 IIS7 上的 WCF 服务。此服务既可以从 Silverlight 客户端调用,也可以从 C# Windows 服务调用。目前一切都在同一台机器上运行。它使用自签名证书,以及我使用 certmgr.msc 导入到受信任根的授权 .cer 文件

Silverlight 应用程序可以很好地调用该服务,但是当 Windows 服务尝试调用它时,我得到以下异常:

System.ServiceModel.Security.SecurityNegotiationException: Could not establish trust 
relationship for the SSL/TLS secure channel with authority 'localhost'. ---> 
System.Net.WebException: The underlying connection was closed: Could not establish 
trust relationship for the SSL/TLS secure channel. ---> 
System.Security.Authentication.AuthenticationException: The remote certificate is 
invalid according to the validation procedure.    

当浏览器和 Silverlight 应用程序可以通过 https 访问服务时,Windows 服务将被拒绝访问的原因是什么?可能是因为客户端证书指纹必须绑定到 Windows 服务或其他什么?

(如您所见,我对 SSL 身份验证的工作方式有点陌生)。

谢谢

4

1 回答 1

0

我发现了问题。原来我只是将 CA 导入当前用户存储而不是本地计算机存储,因此 Windows 服务找不到它。

于 2013-07-11T12:45:37.030 回答