如果集群 CA 密钥或管理器节点被泄露,您可以轮换 swarm 根 CA,这样所有节点都不再信任由旧根 CA 签名的证书。
运行docker swarm ca --rotate以生成新的 CA 证书和密钥。如果您愿意,您可以传递--ca-cert和--external-ca标志来指定根证书并使用集群外部的根 CA。或者,您可以传递--ca-cert和--ca-key标志来指定您希望 swarm 使用的确切证书和密钥。
当您发出docker swarm ca --rotate命令时,以下事情会依次发生:
生成一个交叉签名的证书。这意味着新的根 CA 证书的一个版本是用旧的根 CA 证书签名的。此交叉签名证书用作所有新节点证书的中间证书。这确保了仍然信任旧根 CA 的节点仍然可以验证由新 CA 签署的证书。
还告诉所有节点立即更新它们的 TLS 证书。此过程可能需要几分钟,具体取决于 swarm 中的节点数量。
3.在 swarm 中的每个节点都有新 CA 签署的新 TLS 证书后,Docker 会忘记旧的 CA 证书和密钥材料,并告诉所有节点只信任新的 CA 证书。
这也会导致群的加入令牌发生变化。以前的加入令牌不再有效。
从现在开始,所有新颁发的节点证书都使用新的根 CA 签名,并且不包含任何中间证书。









