Docker Swarm CA

說明顯示和輪替根 CA
用法docker swarm ca [選項]

Swarm 此指令適用於 Swarm Orchestrator。

說明

檢視或輪替目前的 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 檢視任何 Swarm 資訊時,金鑰將不會顯示。

在所有已註冊的節點都已輪替其 TLS 憑證之前,根 CA 輪替將不會完成。如果輪替未在合理的時間內完成,請嘗試執行 docker node ls --format '{{.ID}} {{.Hostname}} {{.Status}} {{.TLSStatus}}',查看是否有任何節點已關閉或無法輪替 TLS 憑證。

以分離模式 (--detach) 執行根 CA 輪替

啟動根 CA 輪替,但不等待輪替完成或顯示輪替進度。