互联网技术 / 互联网资讯 · 2024年3月12日

Docker Swarm:轮换节点时的根 CA 证书更新

如果集群的 CA 密钥或管理节点被泄露,您可以轮换根 CA,这样所有节点都不再信任旧根 CA 签发的证书。

运行 docker swarm ca rotate 以生成新的 CA 证书和密钥。如果您愿意,可以传递 –ca-cert 和 –external-ca 标志来指定根证书并使用集群外部的根 CA。或者,您可以传递 –ca-cert 和 –ca-key 标志来指定您希望 swarm 使用的确切证书和密钥。

云计算核心技术Docker教程:Docker Swarm 轮换节点的CA 证书

当您发出 docker swarm ca rotate 命令时,以下事情会依次发生:

  1. Docker 生成一个交叉签名的证书。这意味着新的根 CA 证书的一个版本是用旧的根 CA 证书签名的。此交叉签名证书用作所有新节点证书的中间证书。这确保了仍然信任旧根 CA 的节点仍然可以验证由新 CA 签署的证书。
  2. Docker 还会通知所有节点立即更新它们的 TLS 证书。此过程可能需要几分钟,具体取决于 swarm 中的节点数量。
  3. 在 swarm 中的每个节点都获得由新 CA 签署的新 TLS 证书后,Docker Swarm 会忘记旧的 CA 证书和密钥材料,并告知所有节点只信任新的 CA 证书。

这也会导致加入令牌发生变化。以前的加入令牌不再有效。

从现在开始,所有新颁发的节点证书都使用新的根 CA 签名,并且不包含任何中间证书。