我发现自己需要存储公共(public) key 证书,以及用于内部应用程序的单个私有(private) key 证书。
我们小组的一个成员建议像现在一样,将X509证书存储在数据库中,而不是将其存储在Windows证书存储区中。我不喜欢重新发明轮子,但我至少必须考虑一下这个想法。我想这将意味着使我们的数据更加集中。
我可以看到的初始障碍是:
我对X509证书没有太多的经验,所以我的问题是:在将公钥证书存储在数据库中而不是与Windows证书存储一起使用时,我们是否还会遇到其他问题?
值得牢记的是,该应用程序将被部署到多个业务客户端服务器上,因此将所有数据保存在一个位置将使备份更加容易。哦,正在使用C#开发内部应用程序。
谢谢!
最佳答案
您的申请目的是什么?
如果您正在处理应用程序中的所有加密货币,并且可以引用PKCS#12证书+私钥文件,那么走数据库路由可能很好。
如果您需要使用Windows Crypto API来访问证书,则可能要继续使用内置证书存储。您可以在这里获得一些好处,因为您可以保护外部设备(例如智能卡或硬件安全模块(HSM))上的私钥。
如果要将所有内容存储在本地磁盘上,则需要确保进行了大量的努力来保护私钥。确保使用强密码短语并使用最佳实践来保护您应用中的该密码短语。