我有一个在 IIS6 上运行的 WCF 服务,该服务使用“带有消息凭据的传输”安全设置配置了 WSHTTPBinding(传输客户端凭据设置为“无”,消息设置为“证书”。这是由通过使用 VS 2010 中的服务自动生成的代码创建的 .NET 客户端。
在我的开发环境中,我创建了一个证书作为服务证书和 IIS SSL 证书,由于我很懒,我导出了证书以用于我的客户端应用程序。在该配置中一切正常,但这不是目标环境。这个想法是让用户使用他们的智能卡来访问这项服务。服务器将不在同一个域中,并且目前不允许使用 LDAP。
问题是现在我在测试实验室中得到了这个并设置了一个环境,其中 SSL 证书由与用户证书相同的 CA 颁发,并且我创建了一个自定义 x509 证书验证器和服务凭据,但在初始调用之后对我的验证者来说,在移交之间发生了一些事情,并在服务跟踪日志上踢出一个错误,说“验证消息安全性错误”,内部异常是“无法验证签名”。由于 is 通过我的自定义验证器并且我收到了消息记录,因此在 SOAP 端一切看起来都很好,而我正在通过另一端获取证书。我已确保我尝试使用的每个证书都在“受信任的用户”存储中,甚至尝试导出证书并将它们放入本地计算机“个人”
感觉不太明白web.config文件中服务证书和客户端证书的使用。有人可以帮我吗?