Fügen Sie dem Kubernetes-Cluster ein SSL/TLS-Zertifikat hinzu

Fugen Sie Dem Kubernetes Cluster Ein Ssl Tls Zertifikat Hinzu



SSL-Zertifikate werden verwendet, um die auf Kubernetes erstellte Anwendung für die Zukunft zu sichern. Nehmen wir ein weiteres sicheres Zertifikat, TLS, das einen sehr sicheren privaten Schlüssel enthält. Zertifikate werden mit Zertifikaten erstellt:  K8r.io API. Wir werden die Konfiguration von SSL-Zertifikaten anhand detaillierter Beispiele lehren. Beginnen wir mit dem SSL-Zertifikat in Kubernetes. SSL-Zertifikate sind für Browser sehr wichtig. Der Browser stellt mit Hilfe von SSL- und TLS-Zertifikaten eine sichere Verbindung mit Kubernetes-Diensten her.

Voraussetzungen:

Jeder Benutzer muss über die neueste Version von Ubuntu auf seinem System verfügen. Der Benutzer des Windows-Betriebssystems installiert eine virtuelle Box und fügt Ubuntu oder Linux virtuell zum System hinzu. Benutzer müssen mit Kubernetes, der kubectl-Befehlszeile, Pods und Clustern vertraut sein und Cluster-DNS kennen, um dieses Thema besser zu verstehen.







Lassen Sie uns einen kurzen Blick auf die Konfiguration von SSL-Zertifikaten in Kubernetes werfen, indem wir das gesamte Verfahren in verschiedene Schritte unterteilen.



Schritt 1: Starten Sie die Kubernetes-Systemsteuerung

Wir wollen eine Umgebung in unserer Anwendung, in der wir Kubernetes-Befehle ausführen können, um Kubernetes-Aufgaben auszuführen. Als Ergebnis stellt uns Kubernetes einen lokalen Container namens „Minikube“ zur Verfügung. Bei jedem Start einer Kubernetes-Anwendung starten wir einen Minikube in Kubernetes, der im Grunde ein Terminal ist, das zum Ausführen von Kubernetes-Befehlen erforderlich ist. In diesem Schritt führen wir den Befehl zum Initialisieren von Minikube aus:



>   minikube start

Wenn wir diesen Befehl auf unserem Systemterminal ausführen, beginnt die Ausführung des Befehls mit dem Drücken der Eingabetaste. Der Befehl zeigt uns im Gegenzug ein unten angehängtes Screenshot-Ergebnis.





Schritt 2: Generieren Sie eine Zertifikatsignierungsanforderung

Nachdem wir einen Cluster mithilfe von Minikube erstellt haben, möchten wir nun eine Zertifikatssignierungsanforderung erstellen. Als Gegenleistung für diese Aktion führen wir den Befehl zum Signieren der Zertifikatsanforderung und zum Generieren eines privaten Schlüssels aus.



> Katze << EOF | cfssl-genkey - | cfssljson -nur Server

Nach der Ausführung der Abfrage wird die Anfrage erfolgreich mit dem privaten Schlüssel generiert. Das Ergebnis ist oben als Screenshot angehängt.

Schritt 3: Erstellen Sie ein Zertifikatsignieranforderungsmanifest in der YAML-Datei

In diesem Schritt erstellen wir ein YAML-Dateimanifest zum Erstellen einer CSR in Kubernetes. Wir führen den folgenden Befehl aus:

> Katze << EOF | kubectl gelten -f

Nach der Ausführung dieses Befehls wird erfolgreich eine YAML-Datei erstellt. Und wir senden es an den API-Server, wie im beigefügten Screenshot gezeigt.

Schritt 4: Status der Zertifikatsignierungsanforderung abrufen

In diesem Schritt sehen wir uns den CSR-Status an, wie er über die API angezeigt wird. Wir können den angegebenen Befehl ausführen, um den Status der Zertifikatsanforderung abzurufen.

> kubectl beschreiben csv my-svc.my-namespace

Wenn der Befehl ausgeführt wird, wird der CSR-Status in der Ausgabe angezeigt, wie im beigefügten Screenshot gezeigt. Der Status von CSR ist „ausstehend“, und dieser Status kommt von der API. Der Name der Datei ist my-svc. my-namespace und Anmerkungen, anfordernder Benutzer und Betreff, alternative Betreffnamen mit DNS-Namen und IP-Adressen, Ereignisse usw. sind in der CSR-Beschreibung enthalten. Der Status ist „ausstehend“, was bedeutet, dass das CSR-Zertifikat noch nicht genehmigt wurde.

Schritt 5: Genehmigung von CSR-Zertifikaten

Der Status des CSR-Zertifikats steht noch aus. In diesem Fall senden wir also eine Anfrage an die API von Kubernetes, um das CSR-Zertifikat zu genehmigen. Wir führen diesen Befehl zur Genehmigung aus:

> kubectl-Zertifikat genehmigen my-svc .my-namespace

Der Befehl zeigt die Ausgabe nach der Ausführung. Eine autorisierte Person, z. B. die Kubernetes-Administration, genehmigt das CSR-Zertifikat. Da wir autorisierte Benutzer sind, erstellen wir YAML-Dateien. Infolgedessen wird das CSR-Zertifikat einfach mit dem Befehl genehmigt, wie im folgenden Screenshot zur Verdeutlichung gezeigt.

my-svc.my-namespace wurde erfolgreich über die certificate.k8s.io-API genehmigt.

Schritt 6: Rufen Sie das CSR-Zertifikat in Kubernetes ab

Wir warten nun ab, ob das CSR-Zertifikat genehmigt wurde. Wir führen also den Befehl aus, um eine Liste aller CSR-Zertifikate zu erhalten, die derzeit im System aktiv sind. Führen Sie den Befehl aus:

> kubectl bekommt csr

Der Name des genehmigten CSR-Zertifikats in Kubernetes wird im beigefügten Screenshot angezeigt. Dieser Befehl gibt den Namen, das Alter, den Namen des Unterzeichners, den Anforderer, die angeforderte Dauer und den Zustand des CSR-Zertifikats zurück.

Schritt 7: Signieren Sie das Zertifikat, indem Sie eine Autorität erstellen

In diesem Schritt werden wir sehen, wie Zertifikate in Kubernetes signiert werden. Das SSL-Zertifikat ist genehmigt, aber noch nicht signiert. Der Name des Unterzeichners erscheint auf dem Zertifikat in Kubernetes. Wir führen den Befehl aus, mit dem der angeforderte Unterzeichner das Zertifikat signiert. Der Befehl lautet:

> Katze << EOF | cfssl-Genart -initca - | cfssljson – bloß ca

{

'CN' : 'Mein Beispiel-Unterzeichner' ,
'Schlüssel' : {
'etwas' : 'rsa' ,
'Größe' : 2048
}


}

EOF

Der Befehl wird ausgeführt, um das Zertifikat digital zu signieren. Der Unterzeichner signiert die angeforderten Zertifikate und aktualisiert den API-Status mit dem Befehl „SSL-Zertifikat“. Wir haben ein Signaturzertifikat erstellt, indem wir den obigen Befehl ausgeführt haben, und das Ergebnis wird im beigefügten Screenshot angezeigt. Eine eindeutige Seriennummer wurde erfolgreich zum Signieren des Zertifikats verwendet.

Schritt 8: Erstellen Sie eine JSON-Datei, um ein Zertifikat auszustellen

Nach der Zertifikatsignierung erstellen wir eine JSON-Datei, aus der wir ein Zertifikat ausstellen. Wir erstellen eine JSON-Datei, indem wir den folgenden Befehl mit dem angehängten Screenshot ausführen:

> nano signingfile.json

Nachdem der Befehl ausgeführt wurde, wird die JSON-Datei erstellt, wie im folgenden Screenshot zu sehen ist.

Schritt 9: Verwenden Sie Server-Signing-config.json

In diesem Schritt verwenden wir die server-signing-config-Datei in JSON, um die Zertifikate zu signieren und auszustellen. Wir führen den Befehl zum Signieren von Zertifikaten mit einer privaten Schlüsseldatei aus.

> kubectl get csr mein-svc.mein-namespace -Die jsonpath =' { .spez.Anfrage } | \ base64 --dekodieren | \ cfssl-Zeichen -das ca.pem -ca ca-Schlüssel ca-Schlüssel.pem -konfig server-signing-config.json | \ cfssljson -nur ca-signierter Server

Nach diesem Befehl wird das bereits in der json-Datei definierte Zertifikat signiert. Die Seriennummer dieses CSR wird generiert. Hier generieren wir eine signierte Serving-Zertifikatsdatei mit dem Namen „ca-signed-server.pem“.

Schritt 10: Hochladen des signierten Zertifikats in das API-Objekt

In diesem Schritt laden wir das signierte Zertifikat in den ausstehenden API-Status hoch, den wir oben gesehen haben. Der Befehl zum Hochladen lautet:

> kubectl get csr mein-svc.mein-namespace -Die json | \  jq '.status.zertifikat = '

'
$ ( base64 ca-signed-server.pem | tr -d '\n' ) ''' | \

> kubectl ersetzen --roh / apis / certificate.k8s.io / v1 / Zertifikatsunterzeichnungsanfragen / my-svc.my-   Namespace / Status -f -

Wenn dieser Befehl ausgeführt wird, wird das signierte Zertifikat erfolgreich hochgeladen, wenn die CSR genehmigt wird. Der oben angehängte Screenshot zeigt uns ein JSON-Format, das das signierte Zertifikat als API-Objekte hochlädt.

Schritt 11: Tragen Sie genehmigte Zertifikate in Kubernetes ein

Wir führen den Befehl erneut aus, um die genehmigten Zertifikate in Kubernetes anzuzeigen.

> kubectl bekommt csr

Das Zertifikat wurde genehmigt und erfolgreich ausgestellt, wie im obigen Screenshot gezeigt.

Schritt 12: Speichern Sie das Zertifikat im System

In diesem Schritt erfahren wir, wie Sie das signierte Zertifikat herunterladen und erfolgreich in unserem System verwenden. Wir stellen das Zertifikat einfach auf dem Server bereit. Der Befehl lautet:

> kubectl get csr mein-svc.mein-namespace -Die jsonpath = '{.status.zertifikat}' \

| base64 --dekodieren > server.crt

Schritt 13: Füllen Sie das Zertifikat aus

In diesem Schritt lernen wir, wie das Zertifikat auf dem Server ausgefüllt wird, damit wir das Zertifikat problemlos für die Websicherheit verwenden können. Wir führen den Befehl aus:

Kalsoom @ Kalsoom > kubectl erstellt geheimen TLS-Server --cert server.crt --Schlüssel server-key.pem

Der oben angehängte Screenshot zeigt uns, dass der sichere oder geheime TLS-Server erfolgreich mit dem Namen cert server.cr und dem privaten Schlüssel server-key.pem erstellt wurde.

Schritt 14: Konfigurieren Sie das Zertifikat

In diesem Schritt konfigurieren wir das Zertifikat, um sicherzustellen, dass es sich um ein Secure Serving-Zertifikat handelt, indem wir den folgenden Befehl ausführen:

> kubectl create configmap example-serving-ca --aus Datei ca.crt=ca.pem

Wie im beigefügten Screenshot gezeigt, wird die Konfiguration map/example-serving-ca erfolgreich in Kubernetes für eine sichere Verbindung auf dem Webserver erstellt.

Fazit

SSL-Zertifikate werden verwendet, um Kubernetes-Anwendungen auf dem Webserver Sicherheit zu bieten. Wir haben jeden Schritt im Detail für Ihr Verständnis erklärt. Sie können dieselben Befehle auch in Ihrer Kubernetes-Anwendung ausführen, um das SSL-Zertifikat zu installieren.