我们有一些加入域的计算机无法导入第三方根证书作为受信任的证书提供商。在尝试修复此问题时,我注意到当我们使用证书管理插件时,我们得到了如下屏幕截图所示的提示。
我的问题是,证书管理管理单元中的用户帐户和计算机帐户有什么区别?
答案1
区别就在于它所说的。在 Windows 中,证书会分配给帐户。因此,如果你想将证书应用于特定计算机,可以通过将证书分配给计算机来完成帐户。与 *nix 系统相比,这是一个细微的差别,主要只是语义上的差别,在 *nix 系统下,用户证书会存储在用户目录中的某个地方,而计算机证书通常会存储在系统目录中的某个地方。
当然,正如您在问题中注意到的那样,区别在于计算机帐户适用于机器,而用户帐户适用于用户。如果您需要您的机器要使用公钥加密进行身份验证(例如 https 的 SSL 证书,这是最常见的例子),证书需要与机器,而不是用户。如果您要验证的是用户,而不是整个机器,则证书需要与用户关联。
实际上,证书管理插件中的区别在于您看到并能够管理哪个“个人”证书存储区 - 用于用户帐户或计算机帐户的证书存储区...或者用于服务帐户(如果您选择的话)。如您在下面的屏幕截图中看到的,在我的公司工作站上,我的用户有一个用于代码签名的证书,我的计算机有一个用于使用安全协议(RDP、HTTPS、TLS 等)进行身份验证的证书 - 它们是不同的证书存储区,您可以从它们的不同路径中看到。
因此,我的用户可以对我创建的 PowerShell 脚本进行签名,但我的机器不能。这一点很重要,因为我设置代码签名证书的全部原因是因为其他同事在将损坏的复制粘贴脚本部署到我们的生产服务器时造成了问题,我不希望他们通过简单地登录我的机器来解决这个问题。同样,我的用户不能声称自己机器,因为我的用户没有我的机器证书。
不要问我为什么微软没有设计他们的证书管理插件,这样你就可以查看用户的和机器的个人证书会同时存储在同一个窗口中,但他们没有。如果他们要求我这样做,我会做不同的事情,但他们却向其他人支付了巨额费用,却得到了更糟糕的东西。
因此,由于您管理的“个人”证书存储有所不同,并且 Microsoft 付钱给我以外的其他人来设计和创建他们的证书管理管理单元,所以您必须在添加管理单元时选择要管理哪个帐户的证书。