所以,这是我的百万美元问题。我想使用第三方托管的服务,因此在设置中我们交换了 X509 证书。我给他们发了我们的,我们得到了他们的。我在证书存储中添加了他们的自签名证书。现在,我尝试使用soapUI连接到服务,我需要使用我的私钥创建一个JKS文件来连接,并使用WSSE标头作为用户名、密码、随机数和TTL,它工作得很好。
但是,我想编写一个 WCF c# 客户端来与服务通信,并且将我的证书添加到配置中的客户端凭据或通过代码不起作用。有人可以让我知道如何使用私钥使用 WCF 发送消息吗?
我已经尝试了这两种方法,但不确定我哪里出错了......
proxy.ClientCredentials.ClientCertificate.Certificate = new X509Certificate2(@"C:\soapUI\soapUI\Agency1\certificates\myprivatekey.pfx", "Pwd");
proxy.ClientCredentials.ServiceCertificate.DefaultCertificate = new X509Certificate2(@"C:\soapUI\soapUI\Agency1\certificates\myprivatekey.pfx", "Pwd");
我还在肥皂信封中添加了正确的 wsu 和 wsse 标题。当我将肥皂信封从 WCF 客户端带到 SOAPUI 时,它可以工作,但不能来自 WCF 本身。所以我很确定它是如何使用私钥的不同之处。因此,任何思路都会有所帮助。