我发现自己需要为内部应用程序存储公钥证书和一个私钥证书。
我们团队的一名成员建议将 X509 证书存储在数据库中,而不是像我们迄今为止一直在做的那样将其存储在 Windows 证书存储中。我不喜欢重新发明轮子,但我至少必须考虑这个想法。这意味着让我们的数据更加集中,我想这很好。
我能看到的最初障碍是:
- 私钥仍然需要存储在某个地方,我不知道将它硬塞进“公钥”表中是否是个好主意。我也不喜欢为单个元素设置表格的想法。也许只是将私钥保存为本地文件? (例如.pfx 文件)。
- 撤销列表。我们可能必须设置一个流程来处理已撤销的公钥。
我在 X509 证书方面没有太多经验,所以,我的问题是:在数据库中存储公钥证书而不是使用 Windows 证书存储时,我们是否可能遇到任何其他问题?
值得注意的是,此应用程序将部署到多个业务客户端服务器上,因此将所有数据保存在一个位置将使备份更容易。哦,有问题的内部应用程序是用 C# 开发的。
谢谢!
最佳答案
您申请的目的是什么?
如果您正在处理应用程序中的所有加密,并且可以引用 PKCS#12 证书 + 私钥文件,那么使用数据库路由可能没问题。
如果您需要使用 Windows Crypto API 来访问证书,那么您可能希望继续使用内置的证书存储。您在这里获得了一些优势,因为您可以保护外部设备上的私钥,例如智能卡或硬件安全模块 (HSM)。
如果您将所有内容都存储在本地磁盘上,您需要确保付出巨大努力来保护私钥。请务必使用强密码并使用最佳做法在您的应用中保护此密码。
关于windows - 在数据库中存储 X509 证书 - 是或否?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/174149/