X509 公共证书和权限
-
19-08-2019 - |
题
我在 ASP.NET 应用程序中加载特定的 X509 证书时遇到问题(即对于 https,不通过 IIS)。我已将其加载到本地计算机上的“个人”和“受信任的根”存储中(通过 MMC 管理单元),但无法从任一存储中加载它。
网络服务帐户似乎没有读取/加载它的权限,因为当我将应用程序池身份更改为具有管理权限的用户时,我可以找到、加载和使用证书。
它只是一个公共证书,因此与带有私钥的证书不同,我看不到任何可以对其设置权限的地方。
这很奇怪,因为我以前在这个应用程序中没有遇到过公共证书的问题。我可以看到此公共证书和以前的公共证书(加载良好)的唯一区别是此特定公共证书已由 Verisign 签名,因此具有包含其他几个 verisign 证书的认证链。
提前致谢,
查尔斯
仅供参考,我的开发环境只是带有 IIS7 的 Vista Business 计算机。
其他提示
结合不同的想法。我对您如何使用“带私钥的证书”一词以及在尝试使用管理员权限访问它后“使用证书”的含义感到有点困惑。我猜您正在尝试执行以下操作之一:
获取证书的副本并执行诸如验证之类的操作,或使用它来加密某些内容。
获取证书副本 和 私钥,并用它来做一些事情,比如签名。
所以...如果是#1, ,我的第一个赌注是证书的设置弄乱了 ASP.NET 协议中的某些内容。Verisign 将配置用于以特定方式生成和签署证书的配置文件。这将提供您无法更改的证书设置,这可能会干扰证书的上传。我会检查给您带来问题的证书与没有任何问题的证书,并查看证书上的扩展有何不同。您可以通过客户端中的 IE 证书预览窗格来执行此操作。检查您在网上找到的任何不同设置 - 通常有关于 Microsoft 集成问题的已发布报告。
遗憾的是,如果您发现问题,则必须返回 Versign 并获取使用正确扩展签名的新证书。如果您有公司帐户,请要求与他们的上层支持人员交谈,他们应该足够聪明,可以帮助您找到适合您的工具的证书配置文件。
如果是#2 - 您可能已将证书的私钥设置为不可导出。我假设您使用的是软件证书,并且您将 PKCS12 或其他证书存储文件上传到浏览器中。那时,它会询问您是否希望能够导出私钥。如果您选择“否”(未选中该框),则私钥将不会离开浏览器。
如果您有原始证书/私钥存储文件,答案很简单 - 从您的个人证书存储中删除证书,然后重新上传。请务必选中可导出框。