windows - 在数据库中存储 X509 证书 - 是或否?

标签 windows certificate pki

我发现自己需要为内部应用程序存储公钥证书和一个私钥证书。

我们团队的一名成员建议将 X509 证书存储在数据库中,而不是像我们迄今为止一直在做的那样将其存储在 Windows 证书存储中。我不喜欢重新发明轮子,但我至少必须考虑这个想法。这意味着让我们的数据更加集中,我想这很好。

我能看到的最初障碍是:

  • 私钥仍然需要存储在某个地方,我不知道将它硬塞进“公钥”表中是否是个好主意。我也不喜欢为单个元素设置表格的想法。也许只是将私钥保存为本地文件? (例如.pfx 文件)。
  • 撤销列表。我们可能必须设置一个流程来处理已撤销的公钥。

我在 X509 证书方面没有太多经验,所以,我的问题是:在数据库中存储公钥证书而不是使用 Windows 证书存储时,我们是否可能遇到任何其他问题?

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

谢谢!

最佳答案

您申请的目的是什么?

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

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

如果您将所有内容都存储在本地磁盘上,您需要确保付出巨大努力来保护私钥。请务必使用强密码并使用最佳做法在您的应用中保护此密码。

关于windows - 在数据库中存储 X509 证书 - 是或否?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/174149/

相关文章:

python - 解决 setup.py 中的 header 依赖关系

Windows Azure 当前正在对需要独占访问的相关关联组执行操作

visual-studio-2008 - 如何在 VS 2008 中创建 MSI 以将证书安装到客户端计算机上的受信任发布者存储中?

c# - snk 与代码签名证书

.net - 带有 Azure Key Vault 的 PKI

windows - 通过 powershell v3.0 启用 ssl 连接 filezilla

mysql - 下载 mysql api-ms-win-crt-runtime-l1-1-0.dll 时出错

ios - 是否可以从 iOS 应用程序签名的证书中获取数据?

用于安装受信任发布者证书的 Powershell 脚本

openssl - 哪些书可以帮助我了解有关 SSL/PKI 的所有知识?