docker swarm ca

描述显示并轮换根 CA
用法docker swarm ca [OPTIONS]

Swarm 此命令适用于 Swarm 调度器。

描述

查看或轮换当前的 Swarm CA 证书。

注意

这是一个集群管理命令,必须在 Swarm 管理节点上执行。要了解管理节点和工作节点,请参阅文档中的Swarm 模式部分

选项

选项默认描述
--ca-cert用于新集群的 PEM 格式根 CA 证书的路径
--ca-key用于新集群的 PEM 格式根 CA 密钥的路径
--cert-expiry2160h0m0s节点证书的有效期 (ns|us|ms|s|m|h)
-d, --detach立即退出,而不是等待根轮换收敛
--external-ca一个或多个证书签名端点的规格
-q, --quiet抑制进度输出
--rotate轮换 Swarm CA - 如果未提供证书或密钥,将生成新的证书或密钥

示例

运行不带任何选项的 docker swarm ca 命令,以 PEM 格式查看当前的根 CA 证书。

$ docker swarm ca

-----BEGIN CERTIFICATE-----
MIIBazCCARCgAwIBAgIUJPzo67QC7g8Ebg2ansjkZ8CbmaswCgYIKoZIzj0EAwIw
EzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMTcwNTAzMTcxMDAwWhcNMzcwNDI4MTcx
MDAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH
A0IABKL6/C0sihYEb935wVPRA8MqzPLn3jzou0OJRXHsCLcVExigrMdgmLCC+Va4
+sJ+SLVO1eQbvLHH8uuDdF/QOU6jQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB
Af8EBTADAQH/MB0GA1UdDgQWBBSfUy5bjUnBAx/B0GkOBKp91XvxzjAKBggqhkjO
PQQDAgNJADBGAiEAnbvh0puOS5R/qvy1PMHY1iksYKh2acsGLtL/jAIvO4ACIQCi
lIwQqLkJ48SQqCjG1DBTSBsHmMSRT+6mE2My+Z3GKA==
-----END CERTIFICATE-----

传递 --rotate 标志(以及可选的 --ca-cert,连同 --ca-key--external-ca 参数标志),以便轮换当前的 swarm 根 CA。

$ docker swarm ca --rotate
desired root digest: sha256:05da740cf2577a25224c53019e2cce99bcc5ba09664ad6bb2a9425d9ebd1b53e
  rotated TLS certificates:  [=========================>                         ] 1/2 nodes
  rotated CA certificates:   [>                                                  ] 0/2 nodes

一旦轮换完成(所有进度条均已结束),当前 CA 证书将被打印:

$ docker swarm ca --rotate
desired root digest: sha256:05da740cf2577a25224c53019e2cce99bcc5ba09664ad6bb2a9425d9ebd1b53e
  rotated TLS certificates:  [==================================================>] 2/2 nodes
  rotated CA certificates:   [==================================================>] 2/2 nodes
-----BEGIN CERTIFICATE-----
MIIBazCCARCgAwIBAgIUFynG04h5Rrl4lKyA4/E65tYKg8IwCgYIKoZIzj0EAwIw
EzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMTcwNTE2MDAxMDAwWhcNMzcwNTExMDAx
MDAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH
A0IABC2DuNrIETP7C7lfiEPk39tWaaU0I2RumUP4fX4+3m+87j0DU0CsemUaaOG6
+PxHhGu2VXQ4c9pctPHgf7vWeVajQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB
Af8EBTADAQH/MB0GA1UdDgQWBBSEL02z6mCI3SmMDmITMr12qCRY2jAKBggqhkjO
PQQDAgNJADBGAiEA263Eb52+825EeNQZM0AME+aoH1319Zp9/J5ijILW+6ACIQCg
gyg5u9Iliel99l7SuMhNeLkrU7fXs+Of1nTyyM73ig==
-----END CERTIFICATE-----

根 CA 轮换 (--rotate)

注意

Mirantis Kubernetes Engine(MKE,前身为 Docker UCP)为 Swarm 提供外部证书管理服务。如果您在 MKE 上运行 Swarm,则不应手动轮换 CA 证书。如需轮换证书,请联系 Mirantis 支持团队。

如果 swarm 管理器中的一个或多个已遭到入侵,建议进行根 CA 轮换,以便这些管理器无法再连接到集群中的任何其他节点或被其信任。

或者,根 CA 轮换可用于将 swarm CA 的控制权交给外部 CA,或从外部 CA 收回控制权。

--rotate 标志不需要任何参数即可执行轮换,但您可以选择指定证书和密钥,或证书和外部 CA URL,它们将被用来替代自动生成的证书/密钥对。

由于根 CA 密钥应保密,如果提供了该密钥,在通过 CLI 或 API 查看任何集群信息时,它将不可见。

在所有注册节点轮换其 TLS 证书之前,根 CA 轮换将不会完成。如果轮换在合理的时间内未完成,请尝试运行 docker node ls --format '{{.ID}} {{.Hostname}} {{.Status}} {{.TLSStatus}}' 以查看是否有任何节点已停机或无法轮换 TLS 证书。

以分离模式运行根 CA 轮换 (--detach)

启动根 CA 轮换,但不等待轮换完成,也不显示轮换进度。