我有一个 WPF 和 WCF 应用程序,需要在客户端安装证书 (.pfx) 以启用 WPF 调用 WCF 服务。

现在,如何防止客户端从其证书存储中导出证书(以便他无法获取 .pfx 文件并将其安装在另一台客户端计算机上)?

有帮助吗?

解决方案

为 WCF 生成证书

  1. 生成证书颁发机构证书

makecert -r -pe -n "CN=MyCA" -ss my -sr localMachine MyRootPublicCert.cer

-r创建一个自签名的-pe标记生成的私钥作为可导出的-ss主题证书存储的名称,存储“输出证书-SR主题”的名称证书证书存储位置位置

该文件会弹出在您生成证书的计算机的个人证书存储中。

这是您需要作为受信任的根证书颁发机构导入到服务器/客户端的文件(rt 单击您创建的 .cer 文件并安装证书,将其放入受信任的根证书颁发机构)

  1. 生成服务器证书

您需要导出包含私钥的证书才能在服务器上使用它,因此从您在打开 mmc、证书附加组件、个人创建 CA 证书的计算机上,单击证书,>> rt 单击 >>所有任务>>导出>>选择是,导出私钥>>选择.PFX>>选择密码>>将此文件命名为NamePrivateKeyCert.pfx

将此证书安装到服务器计算机的个人存储中并使用它来托管服务。

  1. 创建客户证书

从 CA 计算机创建服务器证书。这将生成一个嵌入私钥的证书文件:

makecert -a sha1 -n "CN=ClientCert" -sky Exchange -pe -ss 我的-sr LocalMachine -in "TestCA" -is my -ir localMachine TestPublicCert.cer

获取此 cer 文件并将其安装在受信任人员存储中的客户端计算机上

  1. 回顾

    创建一个CA证书(或使用您已经购买的CA CERT)从CA导出的.pfx文件(由密码保护(私有证书))创建CA CERT(公共证书)的公共证书(公共证明)

    然后

    安装CA CA私人的.pfx文件到服务器的个人商店安装 民众.cer 进入客户端的可信人员存储

    准备好出发。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top