我发现自己需要存储公共(public) key 证书,以及用于内部应用程序的单个私有(private) key 证书。

我们小组的一个成员建议像现在一样,将X509证书存储在数据库中,而不是将其存储在Windows证书存储区中。我不喜欢重新发明轮子,但我至少必须考虑一下这个想法。我想这将意味着使我们的数据更加集中。

我可以看到的初始障碍是:

  • 私钥仍需要存储在某个地方,我不知道将其刺入“公钥”表是否是一个好主意。我也不喜欢为单个元素设置表的想法。也许只是将私钥保留为本地文件? (例如.pfx文件)。
  • 吊销列表。我们可能必须建立一个处理已撤销公钥的过程。

  • 我对X509证书没有太多的经验,所以我的问题是:在将公钥证书存储在数据库中而不是与Windows证书存储一起使用时,我们是否还会遇到其他问题?

    值得牢记的是,该应用程序将被部署到多个业务客户端服务器上,因此将所有数据保存在一个位置将使备份更加容易。哦,正在使用C#开发内部应用程序。

    谢谢!

    最佳答案

    您的申请目的是什么?

    如果您正在处理应用程序中的所有加密货币,并且可以引用PKCS#12证书+私钥文件,那么走数据库路由可能很好。

    如果您需要使用Windows Crypto API来访问证书,则可能要继续使用内置证书存储。您可以在这里获得一些好处,因为您可以保护外部设备(例如智能卡或硬件安全模块(HSM))上的私钥。

    如果要将所有内容存储在本地磁盘上,则需要确保进行了大量的努力来保护私钥。确保使用强密码短语并使用最佳实践来保护您应用中的该密码短语。

    10-07 19:31
    查看更多