Sat*_*bir 3 windows ssl cryptography
我正在从计算机个人存储中的 PKCS #12 文件(使用 PFXImportCertStore 加密 API)导入 X509。
问题:
任何在“本地服务”帐户或任何非管理员帐户下运行的进程都无法访问私钥(Windows 仅限于管理员用户)。
如何向非管理员用户和本地服务授予对证书私钥的访问权限?
笔记:
由于多个进程使用证书,我更喜欢使用计算机存储而不是用户存储。
这是一个棘手的问题,存在一些陷阱。当我终于找到这篇文章中拯救我的评论时,我遇到了同样的问题并且接近绝望
我成功地为该帐户下运行的本地服务执行此操作Network Service。
首先,可以选择授予其他用户访问 MS 证书存储中证书私钥的权限。我已经将其归类为德鲁伊知识:此选项在上下文菜单中可用(右键单击证书),但前提是证书驻留在 localMachine\Personal商店中。在该条目中All tasks,您将找到子条目Manage Private Keys。这是其他店没有的,就连本店也没有CurrentUser\Personal。
此条目将打开一个对话框,允许您添加其他用户对证书的访问权限。在这里,下一个障碍等待着您:默认设置是搜索域中的用户,而不是本地计算机上的用户。除非您更改搜索过滤器,否则可能找不到所需的用户。
我通过谷歌搜索很快就得到了这个结果,但没有帮助。我可以让服务运行,但前提是我将服务用户更改为登录帐户,这不是我想要的(顺便说一句,这导致了一种解决方法:为服务创建本地用户帐户并从内部导入证书该用户帐户。然后您可以将证书放置在几乎任何商店中,它会正常工作)
这就是上面引用的帖子的用武之地,这对我来说是最后一个障碍:只有当您从 MMC 管理单元内将证书导入到证书存储中时,上述过程似乎才有效。选择商店localMachine\Personal并使用上下文菜单导入相关证书。(我选择使私钥可导出,这可能与此相关,也可能不相关)。如果通过在文件系统中双击证书来导入证书,它将被导入到该Current User位置的某个存储中。我曾经这样做,然后将其移动到localMachine\Personal文件夹中并更改访问权限 - 这对我来说从来不起作用。只有从localMachine\PersonalMMC 证书管理单元中导入它后,它才立即起作用......
(另请注意,您必须将证书放入服务用户可以找到的存储中。您当前的用户存储通常不允许这样做,所以无论如何 localMachine 是更好的选择)
我不知道之后是否可以移动证书,但这很容易在系统中检查。
| 归档时间: |
|
| 查看次数: |
2074 次 |
| 最近记录: |