0

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

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

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

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

在此先感谢,
查尔斯

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

4

2 回答 2

1

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

或者,您可以查看FileMonProcMon并检查 NETWORK SERVICE 的访问被拒绝。这个 MSDN 页面列出了存储在磁盘上的位置

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

于 2008-12-03T19:49:00.167 回答
0

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

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

  • 获取证书和私钥的副本,并使用它来执行诸如签名之类的操作。

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

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

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

If you have the original certificate/private key storage file around, the answer is painless - delete the cert from your personal certificate store, and reupload it. Be sure to check the exportable box.

于 2008-12-31T00:51:08.680 回答