【问题标题】:X509 Public Cert and PermissionsX509 公共证书和权限
【发布时间】:2010-09-25 04:53:41
【问题描述】:

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

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

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

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

提前致谢,
查尔斯

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

【问题讨论】:

  • 这个有更多信息,所以我关闭了另一个。
  • 我不知道另一个是怎么发的。在另一个问题上,我在“是的,我是人类”屏幕上点击了后退按钮,然后发布了这个问题。漏洞? 鸭子作为掩护

标签: asp.net iis permissions certificate x509


【解决方案1】:

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

或者,您可以查看FileMonProcMon 并检查网络服务的访问被拒绝。此 MSDN 页面列出了 locations of the stores on disk

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

【讨论】:

  • 好的...所以现在我点击了“显示实体店”,在“个人”下有一个“注册表”文件夹,在“受信任的根证书颁发机构”下有“注册表”、“本地”计算机”和“智能卡”文件夹。知道从那里去哪里吗?
  • 抱歉,就像我说的那样,已经有一段时间了……不过,我在“答案”中添加了另一种故障排除方法。
【解决方案2】:

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

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

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

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

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

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

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

【讨论】:

  • 有点晚了,但是...我试图使用证书来验证已签名的内容。这是一个 SAML2 实现,我提供给我的公共证书以前在许多不同的供应商中都可以正常工作。我最终从身份提供者元数据中读取/加载了证书。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-09
  • 2018-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多