ssl - 在不影响安全性的情况下存储客户端 SSL 证书

标签 ssl client certificate

我已将客户端 SSL 证书作为文件存储在数据库中,并将其私钥密码存储在需要证书的每个 Web 服务的列中(不使用证书存储)。我喜欢这个的原因是我不必担心如果代码移动到另一台服务器 (Dev/QA/Prod),则用户有权访问证书。由于证书存储在集中位置,我不必在每台机器上都安装它。此外,业务人员可以在不干预开发人员的情况下随时上传证书,并且 QA 和生产环境的证书会有所不同。现在我担心的是,将证书存储在数据库中会损害安全性,而不是将其存储在证书存储中?

最佳答案

从安全的角度来看,将私钥和密码放置在数据库中的策略会将所有 key 的权利交给数据库管理员、软件作者和系统管理员。

将私钥的密码放在系统上而不是数据库中只会将完全控制权交给系统管理员和软件作者。

另一种解决方案是将私钥存储在硬件设备 (HSM) 中,并且仅将引用存储在您的数据库中。然后,您的软件将使用像 PKCS#11 这样的硬件加密 API 来执行 SSL 客户端握手加密,而您的私钥根本不会在系统内存或磁盘上。

关于ssl - 在不影响安全性的情况下存储客户端 SSL 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3268278/

相关文章:

php - pdf 文件下载代码不适用于 SSL/HTTPS?

android - Google App Engine 教程,无法获取签名证书指纹(SHA1)

c# - 使用 c# .NET 客户端连接或访问 Okta LDAP 接口(interface)

c# - C# 套接字编程新手

.net 3.5客户端配置文件。完全没用?我想念什么吗?

c# - 如何模拟 IP 地址 - 需要设备模拟器

Powershell脚本为多个服务器远程获取网站的证书到期

testing - 如何测试 SSL 在 dev 上的设置和配置是否正确?

java - javax.net.ssl.SSLHandshakeException 故障排除

ssl - 如何在 OpenSSL 中使用 AES-128-ECB Alg 通过 PEM 编码生成 PKCS8 key