如何从客户端设置DefaultCertificate以在WCF中调用服务器web方法

如何从客户端设置DefaultCertificate以在WCF中调用服务器web方法,wcf,Wcf,下面是我在服务器web.config文件中的配置设置,该文件是WCF应用程序。这里我使用makecert.exe创建X509证书 “CN=SignedByCA1”是私钥,现在,我想从客户端调用WCF服务上的Web方法。 但我需要从客户端设置SetDefaultCertificate,请您帮助我如何获取访问私钥X509证书的密钥 servicerence1.Service1Client obj=newservicerence1.Service1Client() 请帮帮我 错误:{“X.509证

下面是我在服务器web.config文件中的配置设置,该文件是WCF应用程序。这里我使用makecert.exe创建X509证书


“CN=SignedByCA1”是私钥,现在,我想从客户端调用WCF服务上的Web方法。 但我需要从客户端设置SetDefaultCertificate,请您帮助我如何获取访问私钥X509证书的密钥

servicerence1.Service1Client obj=newservicerence1.Service1Client()

请帮帮我

错误:{“X.509证书CN=SignedByCA1链生成失败。使用的证书具有无法验证的信任链。请替换证书或更改certificateValidationMode。吊销功能无法检查证书的吊销。\r\n”}

谢谢,
Sukesh。

由于自签名证书,您收到一个错误

您可以使用忽略错误

或者,您可以将客户端证书安装到服务器的受信任根权限中(假设这只是为了开发)


当然,你也可以签署证书。

如果你能用更多信息更新你的帖子,我可以提供更多细节。服务器上是否发生错误?您能发布web配置的system.servicemodel部分吗?非常感谢您的回复,您能告诉我如何基于服务器私钥证书创建客户端证书吗?我可以粘贴服务器web.config文件,但无法使用“添加注释”按钮提交。它太大,无法作为注释添加,编辑你的开场白并将其添加到那里。
        obj.ClientCredentials.UserName.UserName = "Sukesh";
        obj.ClientCredentials.UserName.Password = "Sukesh";

        obj.ClientCredentials.ServiceCertificate.SetDefaultCertificate(
             System.Security.Cryptography.X509Certificates.StoreLocation.CurrentUser, 
             System.Security.Cryptography.X509Certificates.StoreName.My,
             System.Security.Cryptography.X509Certificates.X509FindType.FindBySubjectDistinguishedName,
             "XYZ");

    string str = obj.GetData(1); // web method