C#X509Certificate2:存储私钥的位置?

时间:2017-07-10 17:47:10

标签: windows wcf store private-key x509certificate2

我有一个自托管的WCF应用程序,它充当服务器,我想在Windows机器上安装/部署它。

应用程序使用自签名证书,我使用makecert.exe创建。所以PFX,CER和PVK都在那里并且可用。一切正常。

此时仅用于测试,应用程序从嵌入式资源中读取证书和私钥。这意味着两者都被编译到应用程序中,这是一个很高的安全风险。

我已经知道,存储此数据的最常用方法是Windows证书存储区。而且我也知道,如何从Windows证书库中保存和阅读。

但有些事情,我仍然没有得到:

我在哪里存储证书(CER)的私钥(PVK),以便我的应用程序能够使用CER?

我的意思是,如果我的应用程序可以读取它,那么任何有权访问这台机器的人都可以阅读它。或者这是错的?

我是否必须自己照顾或是否有任何“行业标准”的Windows机器,以保存和阅读PVK?

1 个答案:

答案 0 :(得分:1)

Windows证书存储区是存储证书(即CA)或带有私钥的证书(最终实体)的最常见位置。

如果您在 LocalMachine \ My 商店中存储证书(带私钥 - PFX),则您可以分配哪些(哪个帐户)可以访问私钥的权限。它是通过 certlm.msc 工具完成的。系统帐户默认具有访问权限,因此任何系统服务都可以使用私钥。

还有其他方法可以存储私钥(如智能卡,HSM,网络HSM等)以及其他访问私钥的方式(如PKCS#11)。