Unterstützung benutzerdefinierter Zertifikate für HTTPS

IT Asset Management (Cloud)

Wenn die Inventarisierungsstation, die für die Kommunikation mit dem Kubernetes-Inventarisierungsagent von Flexeraen identifiziert wurde, für das HTTPS-Protokoll konfiguriert ist, wird sämtliche Kommunikation durch Zertifikate geschützt. Die Inventarisierungsstation präsentiert ihr Zertifikat und der Kubernetes-Inventarisierungsagent von Flexera validiert das Zertifikat, indem er mithilfe seiner eigenen lokalen Kopie des Zertifikats der Zertifizierungsstelle, die Zertifizierungsstelle (CA) validiert, die das Zertifikat der Inventarisierungsstation ausstellt bzw. ausgestellt hat. Wenn, wie es häufig der Fall ist, die Zertifizierungsstelle eine der branchenüblichen größeren Stellen wie z. B. DigiCert ist, ist in dem Ubuntu- Betriebssystem, das die Basis des Kubernetes-Inventarisierungsagent von Flexeraen bildet, bereits das Standard-CA-Bundle enthalten. Wenn sich Ihr Unternehmen jedoch dafür entschieden hat, interne Zertifikate oder Zertifikate zu nutzen, die von einer nicht im Standard-Bundle enthaltenen CA ausgestellt wurden, müssen Sie den Kubernetes-Inventarisierungsagent von Flexeraen mit den CA-Zertifikaten ausstatten, die zur Prüfung des von der Inventarisierungsstation präsentierten Sicherheitszertifikats erforderlich sind.

Intern stützt sich der Kubernetes-Inventarisierungsagent von Flexera für alle Interaktionen mit der Inventarisierungsstation auf die Komponenten des Standard-FlexNet-Inventarisierungsagenten. Das bedeutet, dass die CA-Zertifikate auf die gleiche Weise konfiguriert werden müssen wie auch für Fremdanbieterbereitstellungen für den FlexNet-Inventarisierungsagenten unter Linux. Weil aber in diesem Fall der FlexNet-Inventarisierungsagent innerhalb eines Containers in Kubernetes installiert ist, bezieht sich der Prozess, durch den das CA-Zertifikat dem FlexNet-Inventarisierungsagent zur Verfügung gestellt wird, speziell auf den Kubernetes-Inventarisierungsagent von Flexeraen.

Im Überblick besteht der Prozess aus folgenden Schritten:
  • Sicherstellen, dass Ihre Version des Kubernetes-Inventarisierungsagent von Flexeraen benutzerdefinierte Zertifikate unterstützt
  • Bereitstellen der Zertifikate in dem Format, das der FlexNet-Inventarisierungsagent verlangt
  • Hinterlegen dieser Zertifikate in einem Volume, das in den/die Container eingebunden wird, in dem/denen der Kubernetes-Inventarisierungsagent von Flexera ausgeführt wird
  • Konfigurieren des Kubernetes-Inventarisierungsagent von Flexeraen in der Form, dass er das Speicher-Volume referenziert und die CA-Zertifikate erkennt und verwendet

So verwenden Sie benutzerdefinierte CA-Zertifikate mit dem Kubernetes-Inventarisierungsagent von Flexeraen:

  1. Stellen Sie sicher, dass eine ausreichend neue Version des Kubernetes-Inventarisierungsagenten von Flexera installiert ist/wird.
    Es muss mindestens Version 1.3.0 installiert sein/werden. Wenn diese oder eine neuere Version bereits installiert ist, sind an dieser Stelle keine weiteren Aktionen erforderlich. Wenn eine frühere Version installiert ist, aktualisieren Sie diese, indem Sie den Standardprozess zum Herunterladen/Installieren befolgen, bis das Skript install.sh erfolgreich ausgeführt wurde.
    Tipp: Wenn Sie nicht wissen, welche Version des Kubernetes-Inventarisierungsagenten von Flexera im Cluster installiert ist: Diese wird in der Version der bereitgestellten Containerimages wiedergegeben. Beispielsweise enthält folgendes Containerimage:
    flexera/krm:1.3.0
    die Version 1.3.0 des Kubernetes-Inventarisierungsagenten von Flexera. Sie können das Image mithilfe der entsprechenden Controller-Bereitstellung untersuchen (alles in einer Befehlszeile, hier zur Darstellung mit Zeilenumbruch):
    kubectl get deployments --namespace flexera 
        krm-controller -o jsonpath={.spec.template.spec.containers[0].image}
  2. Bereiten Sie eine einzelne Zertifikatsdatei vor, in der alle erforderlichen Client-seitigen Zertifikate enthalten sind, die zur Validierung der Server-seitigen Zertifikate erforderlich sind, die von Ihrer ausgewählten Inventarisierungsstation präsentiert werden.
    This concatenated certificate file should be saved using the PEM format. Each PEM-format certificate should be base-64 encoded plain text surrounded by a BEGIN CERTIFICATE header and an END CERTIFICATE footer. That is:
    -----BEGIN CERTIFICATE----- 
    MIIDiTCCAnGgAwIBAgIQWO/IibrLpZ5Hts3u3xH7TzANBgkqhkiG9w0BAQUFADAR 
    MQ8wDQYDVQQDEwZ0ZncyazMwHhcNMTAxMTI1MDEyMDM4WhcNMTUxMTI1MDEyODA1 
    
    ...... 
    
    wXvMSERKsNsJ6FwwXFGA3HBrRLTHzqzsfUlUAbV+SBm/FSFkuWsy4QWAuJCbnCnv 
    c3ClFHXqwaIq9UWvO5FR5kD4gK9LZOUY4B7tLTQmpJScFSiPZrIBa1cQ5uWl 
    -----END CERTIFICATE----- 
    Wenn Sie über mehrere Root-CA-Zertifikate verfügen, lassen einfache Shell-Befehle die Verkettung zu:
     #!/bin/sh
     rm cert.pem
     for i in ca1.pem ca2.pem ca3.pem ; do
       openssl x509 -in $i -text >> cert.pem
     done
    Tipp: Vor, zwischen und nach den Zertifikaten in der verketteten Datei (also überall, außer zwischen den BEGIN- und END-Tags) ist freier Text zulässig, der beispielsweise zur Beschreibung der Zertifikate verwendet werden kann.
    Nennen Sie die daraus resultierende Datei cert.pem. (Dieser Dateiname ist zwingend notwendig. Ohne diesen Namen kann der FlexNet-Inventarisierungsagent die Zertifikate nicht erkennen und verwenden.)
  3. Hinterlegen Sie die Zertifikatsdatei in einem Volume, das in die Container eingebunden wird, in denen der Kubernetes-Inventarisierungsagent von Flexera agiert.
    Als Speicher kommt jede Art von Volume infrage, die durch den VolumeSource-Typ von Kubernetes unterstützt wird. Zur üblichen Auswahl gehören configmap oder secret (die folgenden Beispiele gehen davon aus, dass die Zertifikate in einem secret hinterlegt sind). Das Volume muss unter dem Pfad /var/opt/managesoft/etc/ssl eingebunden werden (zufällig ist dies auch der Standardwert der Option SSLDirectory, das ist in dieser Situation jedoch zwingend erforderlich). Beachten Sie außerdem, dass sich das Volume im flexera-Namensraum (Namespace) befinden muss. Beispiel: Angenommen wir nennen das secret myorg-certificates, dann wird aus der Befehlszeile zur Erstellung des secret, das die Zertifikate enthält:
    kubectl create secret generic myorg-certificates --namespace flexera --from-file=cert.pem
  4. Konfigurieren Sie den Kubernetes-Inventarisierungsagent von Flexeraen, mithilfe des Attributs spec.monitor.tlsFiles dieses Volume zu referenzieren, indem Sie die YAML-Datei für die Konfiguration des Agenten bearbeiten.
    Unter Verwendung derselben Beispielwerte wie oben, lautet das entsprechende Extrakt aus der YAML-Datei:
    apiVersion: agents.flexera.com/v1
    kind: KRM
    spec:
      monitor:
        tlsFiles:
          secret:
            secretName: myorg-certificates

Wenn der Container instanziiert wird, stellt der Controller automatisch sicher, dass das Speicher-Volume korrekt eingebunden wird. Wenn der Kubernetes-Inventarisierungsagent von Flexera Komponenten (wie die Komponente ndpolicy) des FlexNet-Inventarisierungsagenten zur Kommunikation mit der Inventarisierungsstation verwendet, übergibt er auch die CA-Zertifikate, sodass diese zur Authentifizierung der sicheren HTTPS-Kommunikation verwendet werden.

IT Asset Management (Cloud)

Current