使用clickonce app在客户端上打包和安装x509证书

时间:2015-01-08 03:03:46

标签: wcf

我刚刚开始编写WCF服务,并为当地警察部门启动并运行了我的第一个服务。他们将使用它来查找过夜停车违规的板块。它正在运行消息安全性和用于加密的x509证书。

有没有办法根据我使用的身份验证将证书与安装打包或者某些服务如何创建它并将其下载到客户端?

现在我将手动将其安装在每本难看的书上,但希望更多地自动化该过程。

1 个答案:

答案 0 :(得分:0)

证书分发是大多数企业IT部门的标准任务,修改CA根目录的应用程序有些禁忌。

如果您正在讨论将服务器证书的公钥推送到每个客户端,请查看Add a trusted root certification authority to a Group Policy object。如果您正在讨论使用相互TLS身份验证创建客户端证书,请查看Deploy User Certificates


如果您正在谈论一个临时证书,其他证书只能由您的应用程序从代码中访问,您可以将其作为嵌入式资源添加到程序集中,并通过X509Certificate2(byte[]) constructor使用它。

我会提醒您不要在应用程序资源中放置私钥,因为应用程序的任何用户都可以随意使用它。 PKI的设计使得私钥不需要共享。无论如何Jeff Valore shows a method to do so,我在下面转载:

var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("MyCert.cer");
var bytes = new byte[stream.Length];
stream.Read(bytes, 0, bytes.Length);
var cert = new X509Certificate2(bytes, "certPassword");