您可以定义 WCF 服务使用的证书吗?
Can you define what certificate a WCF Service uses?
我们有多个程序访问一个 WCF 服务。当客户端发送消息时,他们可以同时定义客户端证书和服务证书。做签名和加密。据我所知,服务可以在启动时同时设置。但是我发现服务如何根据请求检查证书有困难。
如果程序A使用一个证书而程序B使用不同的证书。有没有办法告诉 WCF 如何在不使用 windows 证书存储的情况下查找这些证书?我知道如何从文件加载 X509Certificate2 但似乎无法找到需要覆盖的部分以告诉它根据传入的内容使用特定证书。到目前为止我所做的一切都在寻找客户证书证书商店。业务规则宁愿我们将它们放在我们正在加密的其他地方。我希望程序 A 请求使用一个文件,程序 B 请求使用另一个我可以指定的文件。
要进行客户端认证,其实需要证书+私钥,也就是说,不仅仅是证书。
您需要一个包含证书及其相应私钥的 .PFX 文件。 PFX 受密码保护。
这是一个示例代码:
Client client = new Client();
var cert = new X509Certificate2(File.ReadAllBytes("c:\certificate_with_key.pfx"), "pfx_password");
client.ClientCredentials.ClientCertificate.Certificate = cert;
我们有多个程序访问一个 WCF 服务。当客户端发送消息时,他们可以同时定义客户端证书和服务证书。做签名和加密。据我所知,服务可以在启动时同时设置。但是我发现服务如何根据请求检查证书有困难。
如果程序A使用一个证书而程序B使用不同的证书。有没有办法告诉 WCF 如何在不使用 windows 证书存储的情况下查找这些证书?我知道如何从文件加载 X509Certificate2 但似乎无法找到需要覆盖的部分以告诉它根据传入的内容使用特定证书。到目前为止我所做的一切都在寻找客户证书证书商店。业务规则宁愿我们将它们放在我们正在加密的其他地方。我希望程序 A 请求使用一个文件,程序 B 请求使用另一个我可以指定的文件。
要进行客户端认证,其实需要证书+私钥,也就是说,不仅仅是证书。
您需要一个包含证书及其相应私钥的 .PFX 文件。 PFX 受密码保护。
这是一个示例代码:
Client client = new Client();
var cert = new X509Certificate2(File.ReadAllBytes("c:\certificate_with_key.pfx"), "pfx_password");
client.ClientCredentials.ClientCertificate.Certificate = cert;