GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So erstellen Sie ein TLS/SSL-Zertifikat mit einem Cert-Manager-Operator auf OpenShift

cert-manager baut auf Kubernetes auf und führt Zertifizierungsstellen und Zertifikate als erstklassige Ressourcentypen in der Kubernetes-API ein. Diese Funktion ermöglicht die Bereitstellung von Zertifikaten als Dienst für Entwickler, die in Ihrem Kubernetes-Cluster arbeiten.

cert-manager ist ein Open-Source-Projekt, das auf Apache License 2.0 basiert bereitgestellt von Jetstack . Seit cert-manager eine Open-Source-Anwendung ist, hat sie eine eigene GitHub-Seite.

Diese Anleitung zeigt Ihnen, wie Sie cert-manager installieren in Red Hat OpenShift mit einem Operator . Danach stellen Sie über den installierten cert-manager ein selbstsigniertes Zertifikat aus . Sie können diesem Tutorial auch folgen, indem Sie sich dieses Video ansehen.

[Das könnte Ihnen auch gefallen:CA-Zertifikate für Linux-Befehlszeilentools verfügbar machen ]

SCHRITT 1:Lesen Sie die Dokumentation des Cert-Managers

Die Website des Projekts bietet zahlreiche Informationen zu cert-manager , einschließlich einer Übersicht, Architektur und Verwendungsanleitungen.

Wenn Sie sich die Dokumentation ansehen, finden Sie detaillierte Dokumentation zu Konzepten, Installation, Konfiguration, Verwendung, Anleitungen, häufig gestellten Fragen usw. Auf der Willkommensseite sehen Sie ein allgemeines Architekturdiagramm von cert-manager .

In den GitHub-Repositorys finden Sie auch zusätzliche Dokumentation oder tragen zum Projekt bei.

Sie können cert-manager installieren entweder für eine Vanilla-Kubernetes-Umgebung oder OpenShift. In diesem Tutorial installiere ich cert-manager auf OpenShift.

Die OpenShift-Installationsdokumentation bietet zwei verschiedene Optionen:Eine reguläre Manifestdatei oder den cert-manager Operator verfügbar in der OpenShift-Webkonsolenschnittstelle. Ich werde über Operator installieren .

Seit cert-manager von einem unterstützten Emittenten funktioniert Als Zeichnungsstelle für die Zuweisung von Anwendungszertifikaten müssen Sie entscheiden, welcher Aussteller benutzen. Diese Entscheidung hängt normalerweise von Ihrem DNS-Anbieter (Domain Name Service) ab. Wenn Sie beispielsweise Microsoft Azure verwenden Um Ihre Anwendung zu hosten, müssen Sie ACME auswählen und finden Sie die richtigen Anweisungen für AzureDNS . Eine weitere beliebte Wahl ist Let's Encrypt . In diesem Fall möchten Sie jedoch einen möglichst einfachen Emittenten wählen . Daher entscheide ich mich für SelfSigned Issuer .

Dokumentation über Emittent ist unten gezeigt. Emittent oder ClusterIssuer ist eine Custom Resource Definition (CRD) die angewendet werden können, um den Typ des Ausstellers zu konfigurieren . Was unterscheidet die Art des Emittenten kommt nach spec . Geben Sie in diesem Abschnitt selfSigned an unter Spezifikation . In diesem Beispiel verwende ich ClusterIssuer statt Emittent weil ich einen einzigen Emittenten möchte um die Zertifikate aller Namespaces zu verwalten.

Einmal der Emittent ausgewählt und konfiguriert ist, stelle ich ein Zertifikat für eine bestimmte App aus. Erstellen Sie für diesen Schritt ein Zertifikat Ressource, die in einer YAML-Datei definiert ist.

SCHRITT 2:Sehen Sie sich eine Beispiel-ClusterIssuer-Datei und eine Beispiel-Zertifikatsdatei an

In diesem Lernprogramm werden zwei Beispieldateien verwendet. Die erste Beispieldatei definiert ClusterIssuer , das selbstsignierte Zertifikate verwendet, um Zertifikate für alle Namespaces zu verwalten. Unter Spezifikation , fügen Sie einfach eine Zeile mit dem Text selfSigned:{} hinzu .

apiVersion: cert-manager.io/v1alpha3
kind: ClusterIssuer
metadata:
  name: selfsigned-issuer
spec:
  selfSigned: {}

Sehen Sie sich als Nächstes das Beispiel für ein Zertifikat an Definition.

apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
  name: <certificate name>
spec:
  secretName: <secret name to store>
  duration: 2160h0m0s # 90d
  renewBefore: 360h0m0s # 15d
  organization:
  - "<your organization>"
  keySize: 2048
  keyAlgorithm: rsa
  keyEncoding: pkcs1
  usages:
    - server auth
    - client auth
  # At least one of a DNS Name, URI, or IP address is required.
  dnsNames:
  - '<hostname>.<cluster-url>'
  issuerRef:
    name: selfsigned-issuer
    kind: ClusterIssuer

Das Zertifikat Datei ist etwas komplizierter, und Sie müssen einige Änderungen vornehmen. Beachten Sie, dass das Zertifikat -Wert wird pro Anwendung zugewiesen, die Route verfügbar macht , also benötigen Sie eine Anwendung, die ein TLS/SSL-Zertifikat erfordert. Hier sind ein paar Änderungen, die Sie vornehmen müssen:

  • Zeile 4 - metadata.name:Sie müssen diesem Zertifikat einen Namen geben.
  • Zeile 6 - spec.secretName:Unser Zertifikat wird in einem OpenShift-Secret gespeichert, daher benötigen Sie dafür einen Namen.
  • Zeile 9 - spec.organization:Sie müssen den Namen Ihrer Organisation angeben.
  • Zeile 19- spec.dnsNames:Wahrscheinlich eine der wichtigsten Einstellungen, diese sollte mit Ihrer OpenShift-Route für Ihre App übereinstimmen.

Sie können auch andere Felder nach Belieben ändern. Beachten Sie unbedingt die offizielle Dokumentation von cert-manager, um die Einstellungen basierend auf den Anforderungen und der Einrichtung Ihrer Organisation anzupassen.

SCHRITT 3:Installieren Sie cert-manager über Operator in OpenShift

Sie können den cert-manager bereitstellen . Hier sind die OpenShift-Webkonsole und eine schöne grafische Oberfläche von einer Webkonsole zum Installieren von cert-manager mit einem Operator . Um diese Änderung vorzunehmen, benötigen Sie cluster-admin Privilegien.

Klicken Sie auf OperatorHub unter Operatoren . Wenn Sie die Option nicht sehen, sind Sie höchstwahrscheinlich kein Cluster-Administrator . Wenn der OperatorHub angezeigt wird, suchen Sie nach cert-manager . Beachten Sie, dass es einige Cert-Manager gibt, aber wählen Sie den mit der Community-Version aus.

Ein Fenster im Blade-Stil wird angezeigt. Lesen Sie einige grundlegende Anweisungen und klicken Sie auf Installieren wenn du bereit bist.

Standardmäßig Ihr cert-manager wird auf den openshift-operatoren installiert Namensraum. Ab sofort ist dies eine Standardoption, und die Weboberfläche lässt Sie nicht zu, sie zu ändern. Lassen Sie alles unverändert und klicken Sie auf Installieren .

Dadurch wird der cert-manager gestartet Operator Installationsprozess. Wenn alles gut geht, Ihr cert-manager Operator sollte installiert werden.

Nach cert-manager Operator Installation klicken Sie auf CertManager unter dem Operator des Zertifikat-Managers .

Operator ist nur ein Lebenszyklus-Manager für verschiedene Installations- und Verwaltungsprozesse für Ihre App. Um cert-manager tatsächlich zu installieren müssen Sie einen CertManagers erstellen Beispiel. Überprüfen Sie die Konfiguration, einschließlich der YAML-Dateiansicht. Wenn alles gut aussieht, klicken Sie auf Erstellen Schaltfläche.

Dieser Schritt installiert eine neue Instanz von CertManager . Sobald alles gut aussieht, sehen Sie einen neuen cert-manager unter den CertManagers angezeigt Registerkarte.

Achten Sie darauf, auf Pods zu klicken und überwachen Sie den Fortschritt, um sicherzustellen, dass alles reibungslos verläuft. Sie sind endlich bereit für die Schritte zum Installieren eines ClusterIssuer und dann ein Zertifikat zu generieren.

SCHRITT 4:ClusterIssuer generieren, der ein Zertifikat ausstellen kann

Öffnen Sie ein Terminalfenster und melden Sie sich beim OpenShift-Cluster an. Denken Sie an den ClusterIssuer Datei, die Sie erstellt haben? Navigieren Sie zu dem Verzeichnis, in dem sich die Datei befindet, und geben Sie den folgenden Befehl ein.

oc apply -f <name of ClusterIssuer file>

Wenn alles gut geht, sehen Sie eine Meldung, dass der selbstsignierte Aussteller erstellt wurde.

Sie können zu den Pods Ihres Zertifikatsverwalters zurückkehren und auf einen davon klicken, um zu sehen, dass der selbstsignierte Aussteller jetzt installiert ist.

Eine andere Möglichkeit zur Überprüfung besteht in einem Terminalfenster mit dem folgenden Befehl.

# First run this command to see our Issuers:
oc get clusterissuers

# Next, run this command to see the structure of the Issuer
oc get - yaml clusterissuers/<an Issuer name from above>

Sie sollten einige gedruckte Details zu diesem bestimmten Emittenten sehen .

Sie haben die Installation eines Ausstellers abgeschlossen . Sie können endlich damit fortfahren, ein Musterzertifikat für eine App zu generieren.

SCHRITT 5:Stellen Sie ein Zertifikat in einem Namespace aus

Sie müssen lediglich Ihr Zertifikat beantragen Datei für eine App. Stellen Sie sicher, dass Sie bei Ihrem OpenShift-Cluster angemeldet sind, und wechseln Sie dann zu Ihrem Projekt. Ich werde ein Zertifikat für Quay generieren , weil ich einen Namespace namens quay-enterprise verwende , aber dies kann alles sein, was Sie für Ihre Anwendung nennen möchten. Sobald Sie sich in einem Projekt befinden, geben Sie den folgenden Befehl ein:

oc apply -f <a Certificate definition file>

Sie sollten eine Meldung sehen, dass das Zertifikat erstellt wurde. Mit diesem Befehl können Sie überprüfen, ob das Zertifikat tatsächlich vorhanden ist:

oc get certificate

Kehren Sie zur Webkonsole von OpenShift zurück, klicken Sie auf Ihr Projekt und dann auf Geheimnisse unter Workloads um Ihr neues TLS/SSL-Zertifikat zu entdecken, das für Ihre Anwendung erstellt wurde.

Abschluss

In diesem Artikel erfahren Sie, wie Sie cert-manager installieren auf Red Hat OpenShift durch seinen Operator und generieren Sie ein selbstsigniertes Zertifikat für Ihre Anwendung.

[ Brauchen Sie mehr zu Ansible? Nehmen Sie an einem kostenlosen technischen Überblickskurs von Red Hat teil. Ansible Essentials:Einfachheit in der Automatisierung Technischer Überblick. ] 


Linux
  1. So sichern Sie Ihre Linux-E-Mail-Dienste mit SSL/TLS

  2. So installieren Sie ein SSL-Zertifikat eines Drittanbieters mit cPanel

  3. So verwalten Sie SSL/TLS-Zertifikate von Lets Encrypt mit certbot

  4. So sichern Sie vsFTPd mit SSL/TLS

  5. So erstellen Sie ein selbstsigniertes SSL-Zertifikat unter Ubuntu 18.04

So sichern Sie den TCP-Socket von Docker mit TLS

So überprüfen Sie das SSL-Ablaufdatum auf Plesk

So überwachen Sie SSL/TLS-Zertifikate mit Checkmk

So sichern Sie Nginx mit dem Let’s Encrypt SSL-Zertifikat

So erstellen Sie einen E-Commerce mit Magento

So überprüfen Sie das Ablaufdatum eines TLS/SSL-Zertifikats auf Ubuntu