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

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

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

CryptographicException 'Keyset does not exist'. 

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

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

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

我第一次尝试添加证书时,缺少“管理私钥”选项。 最后通过以下两个步骤纠正它。

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

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

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

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

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

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

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

在此处输入图像描述

即使我从公共CA获得的证书是.CER文件,也可以使用“管理私钥”菜单选项。 我不太了解证书,但我得出结论,只有在导出私钥时才会出现菜单选项。 根据这个答案 ,也许.PFX格式的证书总是允许这样做。 尽管如此,知道其他证书格式是可能的,这是很好的。