Wie man den docker swarm ca-Befehl verwendet, um die Swarm CA zu verwalten

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie die Docker Swarm Certificate Authority (CA) mit dem Befehl docker swarm ca verwalten. Wir werden wesentliche Operationen behandeln, einschließlich der Anzeige des aktuellen Swarm-CA-Zertifikats, um seine Details und Gültigkeit zu verstehen.

Darüber hinaus werden Sie untersuchen, wie Sie die Swarm-CA rotieren. Dies umfasst das Rotieren der CA mit einem neu generierten Zertifikat für routinemäßige Updates, das Rotieren mit einem benutzerdefinierten Zertifikat und Schlüssel für spezifische Sicherheitsanforderungen sowie das Durchführen der Rotation im detached-Modus für die Ausführung im Hintergrund. Diese Schritte sind entscheidend für die Aufrechterhaltung der Sicherheit und Gesundheit Ihres Docker Swarm-Clusters.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/SystemManagementGroup -.-> docker/info("Display System-Wide Information") docker/SystemManagementGroup -.-> docker/system("Manage Docker") subgraph Lab Skills docker/info -.-> lab-555239{{"Wie man den docker swarm ca-Befehl verwendet, um die Swarm CA zu verwalten"}} docker/system -.-> lab-555239{{"Wie man den docker swarm ca-Befehl verwendet, um die Swarm CA zu verwalten"}} end

Anzeigen des aktuellen Swarm-CA-Zertifikats

In diesem Schritt lernen wir, wie man das aktuelle Swarm-CA-Zertifikat anzeigt. Die Swarm CA (Certificate Authority) ist für die Ausstellung von Zertifikaten an die Knoten in einem Docker Swarm-Cluster verantwortlich, die für die sichere Kommunikation zwischen den Knoten verwendet werden.

Um das aktuelle Swarm-CA-Zertifikat anzuzeigen, können Sie den Befehl docker swarm ca mit der Option --cert-dir verwenden, um das Verzeichnis anzugeben, in dem die Swarm-Zertifikate gespeichert sind. Standardmäßig ist dieses Verzeichnis /var/lib/docker/swarm/certificates.

Zunächst stellen wir sicher, dass Sie sich im richtigen Verzeichnis befinden. Ihr Standard-Arbeitsverzeichnis ist ~/project.

pwd

Sie sollten eine Ausgabe ähnlich dieser sehen:

/home/labex/project

Jetzt lassen Sie uns das aktuelle Swarm-CA-Zertifikat anzeigen. Wir verwenden sudo, da der Zugriff auf das Verzeichnis /var/lib/docker Root-Berechtigungen erfordert.

sudo docker swarm ca --cert-dir /var/lib/docker/swarm/certificates

Dieser Befehl gibt Informationen über das Swarm-CA-Zertifikat aus, einschließlich seiner Gültigkeitsdauer und des Ausstellers. Die Ausgabe sieht in etwa so aus:

Certificate information:
------------------------
Common Name: swarm-ca
Organization:
Organizational Unit:
Country:
Province:
Locality:
Valid From: 2023-10-27 00:00:00 +0000 UTC
Valid Until: 2024-10-26 00:00:00 +0000 UTC
Issuer: CN=swarm-ca

Diese Ausgabe zeigt die Details des aktuellen Swarm-CA-Zertifikats. Die Felder Valid From und Valid Until geben die Gültigkeitsdauer des Zertifikats an. Das Feld Issuer zeigt an, wer das Zertifikat ausgestellt hat, in diesem Fall die Swarm CA selbst.

Rotieren der Swarm CA mit einem neu generierten Zertifikat

In diesem Schritt lernen wir, wie man die Swarm CA mit einem neu generierten Zertifikat rotiert. Das Rotieren der Swarm CA ist eine bewährte Sicherheitsmethode, um sicherzustellen, dass die für die Kommunikation innerhalb des Swarm-Clusters verwendeten Zertifikate regelmäßig aktualisiert werden.

Wenn Sie die Swarm CA rotieren, generiert Docker ein neues CA-Zertifikat und einen neuen Schlüssel und gibt dann neue Zertifikate an alle Knoten im Swarm aus. Dieser Prozess ist in der Regel nahtlos und erfordert keine Ausfallzeit für Ihre Dienste.

Um die Swarm CA mit einem neu generierten Zertifikat zu rotieren, können Sie den Befehl docker swarm ca --rotate verwenden. Dieser Befehl generiert automatisch eine neue CA und verteilt die neuen Zertifikate an die Knoten.

Stellen Sie sicher, dass Sie sich in Ihrem Home-Verzeichnis ~/project befinden.

pwd

Sie sollten /home/labex/project sehen.

Jetzt lassen Sie uns die Swarm CA rotieren. Wir verwenden sudo, da diese Operation Root-Berechtigungen erfordert.

sudo docker swarm ca --rotate

Sie werden eine Ausgabe sehen, die anzeigt, dass die CA rotiert wird. Die Ausgabe wird in etwa so aussehen:

Swarm CA rotated.

Nach Abschluss der Rotation beginnt der Swarm, das neue CA-Zertifikat zu verwenden. Die Knoten im Swarm werden ihre Zertifikate automatisch aktualisieren, um von der neuen CA signiert zu werden.

Um zu überprüfen, ob die CA rotiert wurde, können Sie das Swarm-CA-Zertifikat erneut anzeigen, indem Sie den Befehl aus dem vorherigen Schritt verwenden:

sudo docker swarm ca --cert-dir /var/lib/docker/swarm/certificates

Vergleichen Sie die Valid From- und Valid Until-Daten mit der vorherigen Ausgabe. Sie sollten feststellen, dass das Valid From-Datum nun näher am aktuellen Datum liegt, was darauf hinweist, dass ein neues Zertifikat generiert wurde.

Rotieren der Swarm CA mit einem benutzerdefinierten Zertifikat und Schlüssel

In diesem Schritt lernen wir, wie man die Swarm CA mit einem benutzerdefinierten Zertifikat und Schlüssel rotiert. Dies ist nützlich, wenn Sie Ihre eigene CA-Infrastruktur verwenden möchten oder den Swarm in eine bestehende PKI (Public Key Infrastructure) integrieren möchten.

Um die Swarm CA mit einem benutzerdefinierten Zertifikat und Schlüssel zu rotieren, müssen Sie die Pfade zu Ihren benutzerdefinierten CA-Zertifikat- und Schlüsseldateien mit den Optionen --cert und --key beim Befehl docker swarm ca --rotate angeben.

Zunächst erstellen wir aus Demonstrationszwecken dummy-Zertifikat- und Schlüsseldateien. In der Realität würden Sie Ihre tatsächlichen CA-Zertifikate und -Schlüssel verwenden.

Stellen Sie sicher, dass Sie sich in Ihrem Home-Verzeichnis ~/project befinden.

pwd

Sie sollten /home/labex/project sehen.

Jetzt erstellen wir die dummy-Zertifikat- und Schlüsseldateien. Wir verwenden openssl, um ein selbstsigniertes Zertifikat und einen privaten Schlüssel zu generieren.

openssl req -x509 -nodes -newkey rsa:2048 -keyout ~/project/custom_ca.key -out ~/project/custom_ca.crt -days 365 -subj "/CN=custom-swarm-ca"

Dieser Befehl generiert einen privaten Schlüssel (custom_ca.key) und ein selbstsigniertes Zertifikat (custom_ca.crt), das 365 Tage lang gültig ist und den Common Name "custom-swarm-ca" hat.

Jetzt, da wir unser benutzerdefiniertes Zertifikat und unseren Schlüssel haben, können wir die Swarm CA mit diesen Dateien rotieren.

sudo docker swarm ca --rotate --cert ~/project/custom_ca.crt --key ~/project/custom_ca.key

Sie werden eine Ausgabe sehen, die anzeigt, dass die CA mit dem benutzerdefinierten Zertifikat und Schlüssel rotiert wird. Die Ausgabe wird in etwa so aussehen:

Swarm CA rotated.

Nach Abschluss der Rotation beginnt der Swarm, Ihr benutzerdefiniertes CA-Zertifikat zu verwenden. Die Knoten im Swarm werden ihre Zertifikate automatisch aktualisieren, um von Ihrer benutzerdefinierten CA signiert zu werden.

Um zu überprüfen, ob die CA mit Ihrem benutzerdefinierten Zertifikat rotiert wurde, können Sie das Swarm-CA-Zertifikat erneut anzeigen:

sudo docker swarm ca --cert-dir /var/lib/docker/swarm/certificates

Untersuchen Sie die Ausgabe. Das Feld Issuer sollte jetzt den Common Name Ihrer benutzerdefinierten CA anzeigen, der "CN=custom-swarm-ca" ist.

Rotieren der Swarm CA im detached-Modus

In diesem Schritt lernen wir, wie man die Swarm CA im detached-Modus rotiert. Der detached-Modus ermöglicht es Ihnen, das neue CA-Zertifikat und den neuen Schlüssel zu generieren, ohne sie sofort an die Swarm-Knoten zu verteilen. Dies kann in Szenarien nützlich sein, in denen Sie die Verteilung der neuen Zertifikate manuell verwalten müssen.

Um die Swarm CA im detached-Modus zu rotieren, verwenden Sie den Befehl docker swarm ca --rotate --detach. Dieser Befehl generiert das neue CA-Zertifikat und den neuen Schlüssel und speichert sie im Swarm-Zertifikatsverzeichnis (/var/lib/docker/swarm/certificates), aktualisiert aber die Knoten nicht automatisch.

Stellen Sie sicher, dass Sie sich in Ihrem Home-Verzeichnis ~/project befinden.

pwd

Sie sollten /home/labex/project sehen.

Jetzt lassen Sie uns die Swarm CA im detached-Modus rotieren. Wir verwenden sudo, da diese Operation Root-Berechtigungen erfordert.

sudo docker swarm ca --rotate --detach

Sie werden eine Ausgabe sehen, die anzeigt, dass die CA im detached-Modus rotiert wurde. Die Ausgabe wird in etwa so aussehen:

Swarm CA rotated in detached mode.

Im detached-Modus werden das neue CA-Zertifikat und der neue Schlüssel generiert und gespeichert, aber die Swarm-Knoten werden nicht automatisch aktualisiert. Sie müssen dann das neue CA-Zertifikat manuell an die anderen Knoten in Ihrem Swarm-Cluster verteilen und sie anweisen, ihre Konfigurationen neu zu laden.

Um zu überprüfen, ob die CA im detached-Modus rotiert wurde, können Sie das Swarm-CA-Zertifikat erneut anzeigen:

sudo docker swarm ca --cert-dir /var/lib/docker/swarm/certificates

Sie sollten feststellen, dass das Valid From-Datum des Zertifikats aktualisiert wurde, was darauf hinweist, dass eine neue CA generiert wurde. Die Knoten im Swarm verwenden jedoch weiterhin die alte CA, bis sie manuell aktualisiert werden.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man die Swarm Certificate Authority (CA) mit dem Befehl docker swarm ca verwaltet. Wir haben zunächst das aktuelle Swarm-CA-Zertifikat betrachtet, um seine Details wie Gültigkeitsdauer und Aussteller zu verstehen, indem wir die Option --cert-dir verwendet haben.

Anschließend haben wir untersucht, wie man die Swarm CA mit einem neu generierten Zertifikat rotiert. Dies ist eine wichtige Sicherheitsmaßnahme, um die Zertifikate für die sichere Kommunikation innerhalb des Swarm-Clusters zu aktualisieren.