Zertifikatgenerierung über Zertifikat-Manager-Integration

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 2 Minuten Lesedauer
  • Fordern Sie ein Zertifikat über Kubernetes cert-manager mit dem ServiceNow Externen Aussteller (sn-external-issuer) an, und speichern Sie das Zertifikat und die zugehörigen Informationen sicher im Cluster Kubernetes als Geheimnis. In Kubernetesist ein Geheimnis ein Objekt, mit dem Sie vertrauliche Informationen wie Passwörter, API-Schlüssel und Zertifikate speichern und verwalten können.

    Bereitstellungsanforderungen

    • Stellen Sie „cert-manager“ in Ihrer Umgebung Kubernetes bereit. Aktualisieren Sie die Datei „manager.yaml“ mit Instanz-URL, Zertifikatbesitzergruppe, Zertifikatbesitzer, Umgebung und Verlängerungsnachverfolgung.
    • Stellen Sie den externen Aussteller ServiceNow (sn-external-issuer) in Ihrer Umgebung Kubernetes bereit. Erstellen Sie ein Kubernetes Geheimnis clusterissuer-servicenow-credentials mit dem Instanzanwendernamen und dem Passwort, um sicherzustellen, dass der Benutzer über die zum Anfordern eines -Zertifikats erforderlichen Rollen verfügt.

    ServiceNow Externer Aussteller (sn-external-issuer)

    • Externe Aussteller erweitern die Zertifikatmanager-Funktionalität, um Zertifikate über nicht zum Kern gehörende APIs und Services auszustellen.
    • Der ServiceNow Externe Aussteller ist eine ServiceNow-spezifische Implementierung eines externen Ausstellers.
    • Wenn eine neue Zertifikataufgabe erstellt wird, werden deren Zertifikatanforderungs-UID und Zertifikataufgaben-Sys-ID im lokalen JSON-Cache und in der Tabelle mit der Zertifikatanforderungs-UID zur Aufgabenzuordnung in der Instanz gespeichert.
    • Der ServiceNow Externe Aussteller fragt die Instanz ab, um den Status der -Zertifikataufgabe zu überwachen.
    • Wenn sich die Zertifikataufgabe im Status „In Arbeit“ befindet, werden die Zertifikatanforderungs-UID und die Zertifikataufgaben-Sys-ID der Tabelle „UID-Zuordnung des externen Ausstellers“ in der Instanz und dem lokalen JSON-Cache hinzugefügt. Während dieser Zeit versucht der Zertifikatmanager automatisch, das Zertifikat anzufordern.
    • Bei Erhalt einer Zertifikatanforderung sucht der Zertifikatmanager im lokalen JSON-Cache nach einer übereinstimmenden Aufgabe. Wenn der Wert gefunden wird, wird die gleiche Aufgabe abgefragt. Andernfalls wird die Instanz nach Datensätzen aus der Tabelle „UID-Zuordnung des externen Ausstellers“ abgefragt und der lokale JSON-Cache gefüllt.
    • Sobald die Aufgabe als abgeschlossen markiert und das Zertifikat generiert wurde, sendet der externe Aussteller ServiceNow eine weitere Anforderung an die Instanz, lädt den Zertifikatanhang herunter und aktualisiert die Zertifikatressource und das entsprechende Geheimnis in Kubernetes.

    Externer Aussteller von ServiceNow wird in bereitgestellt Kubernetes

    Die Bereitstellung des externen Ausstellers von ServiceNow in Kubernetes umfasst die folgenden Schritte:
    1. Rufen Sie auf der Downloadseite der ServiceNow-Instanz das ZIP-Paket „Helm Chart“ oder „YAML“ ab.
    2. Passen Sie die Dateien „ manager.yaml“ oder „values.yaml“ nach Bedarf für Ihren spezifischen Anwendungsfall an. Diese Dateien können wichtige Informationen wie die Instanz-URL und die Zertifikatbesitzergruppe enthalten.
    3. Erstellen Sie ein Kubernetes -Geheimnis mit dem Namen clusterissuer-servicenow-credentials mit dem Anwendernamen und Passwort der Instanz.
      Beispielbefehl:
      • Erstellen Sie ein Kubernetes -Geheimnis mit dem Namen clusterissuer-servicenow-credentials mit dem Anwendernamen und Passwort der Instanz. Beispielbefehl:
        kubectl create secret generic clusterissuer-servicenow-credentials
                      --from-literal=user=<user_name> --from-literal=password=<password> -n
                    system
      • Stellen Sie sicher, dass der Benutzer über die erforderlichen Rollen zum Anfordern von -Zertifikaten verfügt.
    4. Führen Sie die folgenden Befehle für die Bereitstellung aus.
      kubectl create ns system
      kubectl apply -f crd
      kubectl apply -f rbac
      kubectl apply -f issuers
      kubectl apply -f manager/manager.yaml
    5. (Optional) Passen Sie alle zusätzlichen Konfigurationen in den Dateien an Ihre spezifischen Anforderungen an.
    6. Stellen Sie sicher, dass die Bereitstellung erfolgreich ist und der externe Aussteller von ServiceNow betriebsbereit ist.

    Flow zum Anfordern eines neuen Zertifikats

    Übermitteln Sie nach der Bereitstellung eine Zertifikatressource mit den folgenden Informationen in einer Datei namens certification_clusterisuer.yaml.

    • IssuerRef: clusterissuer-servicenow
    • Aussteller: Aussteller-servicenow
    • Art: ClusterIssuer
    • IssuerRef: servicenow-issuer.servicenow.com

    Hier ist ein Beispiel für eine Zertifikatressource:

    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
    name: certificate-by-clusterissuer
    spec:
    commonName: certificate-by-clusterissuer.servicenow.com
    secretName: certificate-by-clusterissuer
    dnsNames:
    - servicenow.com
    - foo.servicenow.com
    issuerRef:
    name: clusterissuer-servicenow
    group: servicenow-issuer.servicenow.com
    kind: ClusterIssuer

    Wenden Sie die Zertifikatressource mit kubectl anwenden -f Certificate_clusterissuer.yaml an