MMC控制台 - 证书私钥处理

时间:2012-05-30 06:50:43

标签: windows-7 certificate key acl mmc

我们有一个需要访问证书私钥的应用程序。我们还有一个Nightlybuild可以设置证书(使用certmgr从pfx文件导入它)。只要证书的设置和证书的访问在相同的Windows用户(Windows7)下运行,这就可以正常工作。

现在,我们想介绍一个测试(在Nightlybuild中自动执行),其中另一个用户将调用需要访问证书私钥的程序,我正在努力使用MMC控制台 - >所有任务 - >管理私钥。

对我来说,看起来我可以更改“管理私钥”的安全设置中的任何内容,但它与证书的真实ACL没有任何关系。我可以将问题减少到以下手动步骤:

  1. User1将证书导入“本地计算机/我的”(根目录中存在正确的CA)
  2. User1在MMC中选择证书,点击“管理私钥”并添加具有完全控制权限的“用户”(组)和“用户2”(用户)。
  3. User1注销
  4. User2登录
  5. User2打开MMC,点击“管理私钥” - >错误,MMC控制台显示“无法找到用于解密的证书和私钥。”
  6. 虽然User2应该可以访问私钥。所以在我看来,MMC中的User1(User1和User2都在Administrators组中)的设置没有任何意义,并且被访问私钥的.NET API忽略了?

    有没有人知道为什么会这样,我怎么能说服Windows我们真的希望两个用户能够读取证书的私钥?

    感谢您的帮助 迈克尔

1 个答案:

答案 0 :(得分:0)

我刚刚遇到了同样的问题。我试图以未在系统上导入证书的用户身份使用代码签名证书。原来导入证书的时候没有导入,所以可以导出私钥。

我能够通过以下方式解决我们的问题:

  1. 从证书存储中删除现有证书
  2. 再次导入证书,同时确保允许导出私钥
  3. 使用管理私钥来设置权限,以便第二个用户可以访问私钥

在这些步骤之后,我的第二个用户能够正确使用代码签名证书。