代码之家  ›  专栏  ›  技术社区  ›  Charlino

X509公共证书和权限

  •  0
  • Charlino  · 技术社区  · 16 年前

    i_e在ASP.NET应用程序中加载特定的X509证书时遇到问题(即,对于HTTPS,不通过IIS加载)。我已经将它加载到本地计算机上(通过MMC管理单元)的“我的个人”和“受信任的根”存储中,但无法从任何一个存储中加载。

    网络服务帐户似乎没有读取/加载它的权限,因为当我将应用程序池标识更改为具有管理权限的用户时,我可以查找、加载和使用证书。

    它只是一个公共证书,因此与带有私钥的证书不同,我无法在任何地方设置对它的权限。

    这很奇怪,因为我以前没有在这个应用程序中的公共证书遇到过这个问题。我能看到的唯一区别是,这个公共证书和以前的公共证书(加载的很好)是,这个特定的公共证书已经由Verisign签署,因此有一个证书链与其他两个Verisign证书。

    事先谢谢,
    查尔斯

    仅供参考,我的开发环境只是我的Vista商务机和iis7。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Arnout    16 年前

    已经有一段时间了,但我似乎记得我曾经遇到过与权限相关的证书问题,我通过将证书导入到 身体的 存储(安装证书时单击“显示物理存储”复选框)。

    或者,你可以看看 FileMon ProcMon 并检查网络服务是否拒绝访问。此msdn页列出了 locations of the stores on disk .

    仍然是一个模糊的答案,但希望这最终会导致一个解决方案…

        2
  •  0
  •   bethlakshmi    16 年前

    结合不同的想法。我有点困惑,你是如何使用术语“cert with a private key”和你所说的“use the cert”在你试图用管理员权限访问它之后。我猜你想做的是:

    • 获取证书的副本,并执行类似于验证它的操作,或者使用它来加密某些内容。

    • 获取证书副本 私钥,并使用它来做一些类似于签名的事情。

    所以…如果是1 我的第一个赌注是证书的设置弄乱了ASP.NET协议。Verisign将配置用于以特定方式生成和签署证书的配置文件。这将提供您无法更改的证书设置,这可能会干扰上载证书。我将检查给您问题的证书与没有任何问题的证书,并查看证书上的扩展是如何变化的。您可以通过客户机中的IE证书预览窗格来完成此操作。检查您在网上找到的任何不同设置-通常会发布有关Microsoft集成问题的报告。

    不幸的是,如果你发现了问题,你必须回到Versign,得到一个新的证书,用正确的扩展名签名。如果您有一个公司帐户,请与他们的高层支持人员交谈,他们应该有足够的结论来帮助您找到一个适合您的工具的证书配置文件。

    如果是2 -您可能已将证书的私钥设置为不可导出。我假设您使用的是软件证书,并且您将PKCS12或其他证书存储文件上载到了浏览器中。当时,它会询问您是否希望能够导出私钥。如果您拒绝(不选中该框),则私钥不会离开浏览器。

    如果您有原始的证书/私钥存储文件,答案是无痛的-从您的个人证书存储中删除证书,然后重新加载它。确保选中可导出框。