ssl - 更新 SSL 证书的 PKI 最佳实践

标签 ssl pki x509

无需用户交互即可更新客户端 SSL 证书的最佳做法是什么?

更具体地说:
我有一台带有 SSL 私钥/公共(public) x.509 证书的服务器。 所有客户端都将通过 SSL 与该服务器通信。 为了建立 SSL 连接,所有客户端都需要将服务器的公共(public)证书导入到它们受信任的位置(信任库)。

在(客户端)安装时获取服务器的证书不是问题,因为安装程序可以(通过 SSL)联系服务器并获取服务器的公钥(或公司的根证书)。之后,安装程序可以向用户显示证书以进行视觉验证,这就足够安全了。

服务器证书(或公司CA)过期后会发生什么?
或者不小心更改了服务器证书会怎样?

(自动)使用新服务器 SSL 证书 (CA) 更新所有客户端的最佳做法是什么?请记住,安装后客户端是后台进程,并且不可能进行可视化用户交互。

当然,最简单的方法是由基础架构管理员手动更新所有客户端。

我想知道是否有一些已知的良好做法可以在无需用户干预的情况下自动更新客户端的证书?

最佳答案

理想情况下,您的服务器证书应由使用生命周期长(10 到 20 年)的可信根 CA 证书颁发和签署。客户端只会安装根 CA 证书。

服务器证书本身,即使您每年更新一次,也不需要传播给客户端,因为根证书对其进行了签名并且是可信的。

如果您使用的是自签名证书,这就是为什么从证书管理的角度来看它们通常不受欢迎的原因。当它们过期或更改时,您需要每个人都进行更新 - 否则您会收到浏览器安全警告。

关于ssl - 更新 SSL 证书的 PKI 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5719327/

相关文章:

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

c - Windows 2008R2 CA 和 OpenSSL CSR : Error parsing CSR ASN1 bad value met

https - 生成自签名证书时指定主题备用名称

ssl - curl:(51) : SSL 证书使用者名称与目标主机名不匹配

python - 使用 ldap 库的 python 中的 LDAP 身份验证问题

java - 在 Java 中自动将自签名证书合并到我的信任库中的好策略是什么?

powershell - 将 DER 编码证书转换为 ssh-rsa 公钥

java - TLS 1.2 + Java 1.6 + BouncyCaSTLe

php - 如何使 fsockopen 在使用 tls 时忽略证书

java - 修改X509证书