如何将 WCF 服务参考客户端与 X.509 客户端证书一起使用,该证书只能作为 .pfx 文件使用?

How to use WCF service reference client with X.509 client certificate, which is only available as .pfx file?

上下文

我有一个经过测试的工作 WCF 服务,该服务配置为客户端证书身份验证。现在我想调用它并提供客户端证书。我想使用在我向客户端项目添加服务引用时生成的客户端 class。

注意:我必须从文件或其他流加载我的 X 509 客户端证书,因为客户端将 运行 在 PaaS 环境中,所以我没有访问任何 OS 提供的证书存储。

X509Certificate certificate = new X509Certificate(path, password);

问题

我知道我可以通过以下方式配置客户端:

client.ClientCredentials.ClientCertificate.SetCertificate(
    StoreLocation.CurrentUser,
    StoreName.My,
    X509FindType.FindBySubjectName,
    "myCert");

遗憾的是,SetCertificate 没有接受加载的 X509Certificate 实例的重载。

如何配置我的客户端以使用加载的 X509 证书?

您只需要:

client.ClientCredentials.ClientCertificate.Certificate = certificate