缺少“管理私人钥匙”选项

时间:2013-01-15 12:39:42

标签: c# wcf wcf-security x509certificate

我正在使用Windows 2008R2下IIS 7.5上托管的Transport Security开发WCF服务。我有一个在IIS 7.5中生成的证书,该证书存储在本地文件夹中。

当我使用BasicHttpBinding或WSHttpBinding与Transport Security时 - 一切正常。但当我将其更改为NetTcp时,我得到一个例外:

 CryptographicException 'Keyset does not exist'. 

经过一些谷歌搜索后,我发现问题可能是因为我的NETSERVICE IIS帐户没有预先设置我的证书的私钥。

解决方案是通过右键单击我的证书并选择“MANAGE PRIVATE KEYS”选项来设置MMC中的访问权限。但是在选择菜单中没有这样的选项!证书是在管理员帐户下创建的,我打开它 - 它说它有私钥。我做错了什么?

7 个答案:

答案 0 :(得分:17)

转到服务器 - >点击开始 - >运行 - > type mmc - >输入 - >选择带有本地计算机选项的证书管理单元 - >转到控制台Root->证书 - > Personal->证书 - >选择证书 - >右键单击 - >转到所有任务 - >管理私钥 - >添加权限

答案 1 :(得分:7)

我第一次尝试添加证书时,

管理私钥选项丢失了。最后通过以下两个步骤纠正它。

  1. 以管理员身份登录MMC。文件 - >添加或删除管理单元>选择证书 - >单击“添加”按钮。这将打开一个对话框。此管理单元将始终管理证书:选择计算机帐户。选择要管理此管理单元的计算机:选择“本地计算机”。单击完成。点击确定。

  2. 在个人文件夹中导入证书(所有任务 - >导入)时,请确保导入.pfx文件而不导入.cer文件。

答案 2 :(得分:5)

我遇到了同样的问题(缺少管理私钥选项)。为了使其显示,我必须使用“计算机帐户”选项而不是默认的“我的用户帐户”添加“证书”管理单元

答案 3 :(得分:1)

还有一个问题,所以我会提到它。使用makecert.exe创建证书时,除-pe参数外,请确保导入.pfx文件,而不是.cer。如果没有.pfx文件,请使用其他工具(例如pvk2pfx.exe)创建。

答案 4 :(得分:0)

“管理私钥”选项仅适用于具有可导出私钥的证书

就我而言,尽管配置了“证书”管理单元以访问COMPUTER帐户,但我遇到了此问题。此外,在this answer中获取.PFX证书的建议对我来说不是一个选择。

我通过在创建证书请求时指定私钥可导出(我通过证书MMC管理单元执行)来解决问题:

enter image description here

即使我从公共CA获得的证书是.CER文件,也可以使用“管理私钥”菜单选项。我对证书知之甚少,但我得出结论,只有在导出私钥时才会出现菜单选项。根据{{​​3}},.PFX格式中的证书总是允许这样做。尽管如此,知道其他证书格式是可行的很好。

答案 5 :(得分:0)

  1. 打开命令提示符(以管理员身份运行)
  2. 输入并执行命令,
    certutil -修复存储我的“缩略图”(替换指纹) (含32个字符)
  3. 如果成功,您将收到消息,
    certUtil :-repairstore命令成功完成。

答案 6 :(得分:0)

在Windows 10 1809中,管理私钥选项似乎仅可用于个人存储中的证书。解决方法是将证书拖放到此处,根据需要添加权限,然后将其拖回您需要的位置。