windows-7 - 本地机器 "Trusted roots"证书的私钥信任权限

标签 windows-7 iis-7 certificate windows-server-2008-r2 private-key

我有一个证书必须导入证书/受信任的根证书颁发机构 并有相应的私钥。

要从代码中实际访问 key ,您需要设置私钥权限以授予对特定 IIS 应用程序池的完全访问权限。我完全理解,但问题是这只能在个人证书上设置,而不能在受信任的根证书上设置。

我已经尝试将相同的证书添加到个人商店,但以下代码不会中断:

X509Store store = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);

foreach (X509Certificate2 cert in store.Certificates)
{
    if (cert.HasPrivateKey)
    {
        // access private key here
    }
}

store.Close();

如果我更改 StoreName.Root 在个人商店中设置证书权限有效至 StoreName.My .我可以在那里访问它。但是我无法在 root 中访问它。它只是说:

Keyset does not exist



有什么建议?

附加信息

如果我将我的应用程序池标识设置为 本地系统 (对我的机器有全部权限)我可以 成功 访问私钥。所以主要问题是我如何设置我的应用程序池身份的权限以访问受信任根存储中证书的私钥。

Why trusted root store and not personal?
I have a pre-built assembly that accesses this certificate in this particular store, so simply placing the certificate in Personal store won't do the trick for me. That's why setting trust permissions on private keys of trusted root certificates is imperative.

最佳答案

我还没有在受信任的根证书颁发机构中尝试过,但我发现与其他证书存储最简单的方法是将证书拖放到个人存储中,然后设置权限,然后拖放回原始证书存储。在您的情况下,受信任的根证书颁发机构。

使用证书 MMC 的步骤:

  • Import certificate to the store you want it and mark keys as exportable. (您也许可以绕过此操作并直接导入到个人商店,但我还没有尝试过。)
  • 将导入的证书拖放到个人存储中。
  • 右键单击个人存储中的证书,然后在上下文菜单中单击“所有任务”,然后在子菜单中单击“管理私钥”。根据您的应用程序池设置适当的权限为 referenced in step 1 .
  • 设置权限后,将证书拖放到原始存储区(在您的情况下为受信任的根证书颁发机构)。
  • 关于windows-7 - 本地机器 "Trusted roots"证书的私钥信任权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10580326/

    相关文章:

    iis-7 - 通过 Powershell 更改远程计算机上 IIS 网站的物理路径

    iis-7 - 如何更正安全证书名称与网站名称不匹配?

    c# - 为什么上传到 ASP.NET Web 应用程序的大于 12MB 的文件显示为 0MB?

    ssl - 具有相同通用名称和不同 SAN 条目的 SAN 证书

    windows-7 - AppData\Local/Access 下载的自定义程序集的环境变量

    gcc - Windows 7下使用mingw-w64-x86_64 gcc工具链cmake报错: "this program has been built without plugin support"

    python - 为什么easy install无法获取mysql?

    Android apk sign 吊销日期警告什么意思

    code-signing - signtool吊销问题?

    windows-7 - 作为开发人员,我应该如何使用 Windows Vista(和 Windows 7)中的特殊文件夹?