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

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

它只是一个公共证书,因此与带有私钥的证书不同,我看不到任何可以对其设置权限的地方。

这很奇怪,因为我以前在这个应用程序中没有遇到过公共证书的问题。我可以看到此公共证书和以前的公共证书(加载良好)的唯一区别是此特定公共证书已由 Verisign 签名,因此具有包含其他几个 verisign 证书的认证链。

提前致谢,
查尔斯

仅供参考,我的开发环境只是带有 IIS7 的 Vista Business 计算机。

有帮助吗?

解决方案

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

或者,你可以看看 文件星期一 或者 程序监视器 并检查网络服务的访问被拒绝。此 MSDN 页面列出了 磁盘上存储的位置.

仍然是一个模糊的答案,但希望这最终能带来解决方案......

其他提示

结合不同的想法。我对您如何使用“带私钥的证书”一词以及在尝试使用管理员权限访问它后“使用证书”的含义感到有点困惑。我猜您正在尝试执行以下操作之一:

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

  • 获取证书副本 私钥,并用它来做一些事情,比如签名。

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

遗憾的是,如果您发现问题,则必须返回 Versign 并获取使用正确扩展签名的新证书。如果您有公司帐户,请要求与他们的上层支持人员交谈,他们应该足够聪明,可以帮助您找到适合您的工具的证书配置文件。

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

如果您有原始证书/私钥存储文件,答案很简单 - 从您的个人证书存储中删除证书,然后重新上传。请务必选中可导出框。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top