[英]WCF Routing with Message Security
我有一个带有Message Security 身份验证的WCF服务。
我想为负载平衡设置路由服务。
由于某种原因,它不起作用,我已启用includeExceptionDetailInFaults来查看异常,所以在客户端我看到:
未提供客户端证书。 在ClientCredentials中指定客户端证书。
似乎证书不是从router-> service转发的。
目前客户端/路由器/服务在同一台机器上,所以我拥有所有证书,但是如果我将它们部署在不同的机器上,那么路由器必须拥有私钥吗?
另外,如果我想在路由器和服务之间建立非安全连接(卸载安全性),我该如何提供调用者的身份?
编辑:对于所有客户端/路由器(服务器和客户端)/服务器,安全性配置相同:
<security mode="Message">
<message clientCredentialType="Certificate" negotiateServiceCredential="false"
algorithmSuite="Default" establishSecurityContext="false" />
</security>
有很多文章称微软不支持这种情况,这是事实。
未提供客户端证书。 在ClientCredentials中指定客户端证书。
当服务证书与主机域名不匹配时,我看到了此错误。
如果您仍然看到此问题,您可以发布一些配置条目吗?
1)首先尝试通过代码在客户端设置证书。
ChannelFactory<IService1> factory =
new ChannelFactory<IService1>("Service1_Endpoint");
factory.Credentials.ServiceCertificate.SetDefaultCertificate(
System.Security.Cryptography.X509Certificates.StoreLocation.CurrentUser,
System.Security.Cryptography.X509Certificates.StoreName.My,
System.Security.Cryptography.X509Certificates.X509FindType.FindBySubjectName,
"<SeriveCerificateName>");
如果您确实遇到证书问题,请立即在应用程序启动时获取异常。
2)如果没有例外,则检查双方服务证书的指纹。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.