为什么会有“计算机\个人\证书”存储和“当前用户\个人\证书”存储?

12

我正在比较本地计算机中的证书,MMC.exe允许我查看“当前用户”和“计算机”的证书。

我不明白为什么会有两个“个人”存储区。有人可以解释一下为什么会有两个存储区以及它们如何交互吗?

知道这些其他文件夹为什么存在也很好。我认为唯一具有固定含义的是“受信任的根证书”。另一个常数是Fiddler似乎也将其证书放入“当前用户\个人”中。

输入图像描述

例如;FedUtil只会使用位于以下位置的证书(web.config)

        <serviceCertificate findValue="6CB9aaaaa636EBF52980152CDCB02D3BBBBBBBBB" storeLocation="LocalMachine" storeName="My" x509FindType="FindByThumbprint" />

这个问题的源代码在哪里? - Mike Atlas
@Mike Atlas - 根据您的请求和显然的投票结果。 - makerofthings7
这不是我的投票。 - Mike Atlas
3个回答

6

这主要取决于它们的使用范围。"本地计算机个人"存储区包含应用程序作为客户端/服务器证书使用并仅属于此计算机的证书;而"当前用户个人"存储区包含不绑定到任何特定计算机的证书(例如,您可能有一个数字签名证书,用于在几台不同的计算机上签署文档)。


本地计算机\个人存储如何影响同一台计算机上的其他用户? - makerofthings7
除非您是管理员,否则无法访问其他人的证书。尝试创建一个新用户帐户并在登录到其中一个/另一个时查看个人证书。亲自试一试。 - Mike Atlas

5
所有证书库中的大部分证书都只是证书,没有对应的私钥。它们用于系统确定是否可以信任某些事物(如代码、网站等)。
在个人证书库中,通常您拥有自己的证书,包括实际签名所需的私钥。其中一些与用户相关(例如签署电子邮件),并存储在CurrentUser库中,而一些与计算机相关(例如网站上的SSL加密),则存储在LocalMachine库中。

3
有些情况需要使用由域CA颁发的证书来分别验证本地计算机和用户,以确保安全性。
例如,VPN认证需要向计算机颁发证书(以验证该计算机是否被允许连接到VPN),并向用户颁发证书(以验证试图连接到VPN的人是否与当前登录本地计算机的用户相同)。这两个证书分别存储在计算机\个人和当前用户\个人位置。
因此,唯一访问VPN的方法是拥有加入域的计算机(以获得由域CA颁发的计算机证书),并且已经连接到域网络的域用户(以获得由域CA颁发的用户证书)登录到该计算机。
特定情况下,即使用户当前未登录域,也可以让用户访问和安装VPN(例如在家中或离开办公室等情况下),只需输入网址,使用其域凭据进行身份验证,然后设置VPN软件和连接详细信息即可,从而允许用户远程访问业务网络资源,无需ICT支持。
关于它们如何互动,计算机\个人位置中的证书适用于所有访问该计算机的用户,而当前用户\个人位置中的证书仅适用于当前用户。在我的例子中,这些证书共同工作,为计算机和用户提供了域外身份验证。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接