C# Windows证书存储

C# Windows证书存储,c#,.net,windows,ssl,certificate,C#,.net,Windows,Ssl,Certificate,在哪里可以找到server 2003硬盘上的windows证书存储位置。我正在编写一个c#实用程序,用于管理我们在证书过期时用来通知的几个证书。因此,我选择将它们存储在windows证书存储中。我不想使用我在MMC中看到的任何现有位置(个人…),而是想用我的应用程序名和我选择的位置(例如:“c:\certs”)创建另一个位置,以便我可以备份。我强烈怀疑您不需要创建自己的位置。你有理由想要一个吗?Windows有API来管理证书,我建议研究一下这些API。我很确定你可以通过公共API做所有合理的事

在哪里可以找到server 2003硬盘上的windows证书存储位置。我正在编写一个c#实用程序,用于管理我们在证书过期时用来通知的几个证书。因此,我选择将它们存储在windows证书存储中。我不想使用我在MMC中看到的任何现有位置(个人…),而是想用我的应用程序名和我选择的位置(例如:“c:\certs”)创建另一个位置,以便我可以备份。

我强烈怀疑您不需要创建自己的位置。你有理由想要一个吗?Windows有API来管理证书,我建议研究一下这些API。我很确定你可以通过公共API做所有合理的事情。如果您在系统存储中使用API,您可能需要编写更少的代码,并且您的解决方案将更安全,更好地与操作系统(以及为在windows上处理证书而构建的所有其他工具)集成。

(请原谅迟来的回复)

我不确定这一个Syam,但至少证书中涉及的私钥可能在这里:C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto


同样,这一点我也不确定。

我知道这种老问题,但当我寻找类似问题的答案时,我发现证书信息存储在windows注册表中,而不是常规文件中:

可以使用makecert.exe创建新的存储

makecert.exe-sr localmachine-ss


您可以从这里下载该工具

我正在.net中编写该实用程序,当然也在使用它的API。我只是想为这家商店选择我自己的名字和它在硬地上的位置drive@Syam:System.Security.Cryptography.X509Certificates.StoreName是一个枚举,这强烈表明存储列表是固定的。@Syam--如果使用API,为什么要关心实际证书的位置?只需编写代码来列举这些该死的东西,检查过期时间(或者你需要的任何东西),然后处理它:)这东西已经足够精致了(我花了足够长的时间让WSE3使用x.509加密和签名与Axis进行对话。如果混合中有一些自定义代码干扰了证书存储,我会发疯的)根据存储类型,它可以存储在注册表或文件中,如前所述