是否可以将X509证书安装到特定的存储定位(不是当前用户)中



我正在使用弹力城堡(C#)生成WCF网络服务的自签名X.509证书。

我有一个用例,该证书是由在用户帐户中运行的安装程序创建的(例如 System Administrator帐户)。安装程序还将创建服务的Windows用户帐户(例如我的服务帐户),然后使用这些证书。

我不想向机器/域上的所有用户提供证书,而仅适用于授权的服务帐户(我的服务帐户)。

在这种情况下,似乎 storelocation.currentuser or StoreLocation.localmachine 将能够实现这一目标?

解决此用例的合理方法是什么?

您可以从任何帐户访问证书的唯一方法是在LocalMachine商店中创建它们;如果您将它们放在特定的用户商店中,则不是。请注意,证书没有ACL,per-se。但是,私钥会。

这样做的最常见方法是将证书本身存储在LocalMachine商店中,然后使用合适的ACL将私钥保护,仅授予实际上应该访问私钥的那些帐户的权限当然可以是一个虚拟服务帐户,例如NT Service<ServiceName>)。

在现代版本的Windows版本中,您应该能够通过使用所有任务 ->在证书上下文菜单上使用所有任务 ->"管理私钥"选项,直接从证书管理MMC SNAP -IN调整私钥上的权限。

最新更新