Zertifikatgenerierung über Zertifizierungsmanager-Integration

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 2 Minuten Lesedauer
  • Fordern Sie ein Zertifikat über an Kuberneteszertifizierungsmanager, der verwendet ServiceNowExterner Aussteller (sn-externer Aussteller) und speichern Sie das Zertifikat und die zugehörigen Informationen sicher in KubernetesCluster als Geheimnis. In Kubernetes, Ein Geheimnis ist ein Objekt, mit dem Sie vertrauliche Informationen wie Passwörter, API-Schlüssel und Zertifikate speichern und verwalten können.

    Informationen zum Erstellen eines externen Ausstellers finden Sie unter Erstellen und Bereitstellen eines externen Ausstellers für die Zertifikatverwaltung [KB1435392] .

    Bereitstellungsanforderungen

    • Stellen Sie den Zertifizierungsmanager in bereit KubernetesUmgebung. Aktualisieren manager.yaml Mit Instanz-URL, Zertifikatbesitzergruppe, Zertifikatbesitzer, Umgebung und Verlängerungsnachverfolgung.
    • Stellen Sie bereit ServiceNowExterner Aussteller (sn-external-issuer) in Ihrem KubernetesUmgebung. Erstellen Sie ein KubernetesGeheimnis clusterissuer-servicenow-credentialsMit dem Anwendernamen und Passwort der Instanz, um sicherzustellen, dass der Anwender über die erforderlichen Rollen verfügt, um ein Zertifikat anzufordern.

    ServiceNow Externer Aussteller (sn-externer Aussteller)

    • Externe Aussteller erweitern die Zertifikatmanager-Funktionalität, um Zertifikate über nicht-Core-APIs und -Services auszustellen.
    • Die ServiceNowExterner Aussteller ist eine ServiceNow-spezifische Implementierung eines externen Ausstellers.
    • Wenn eine neue Zertifikataufgabe erstellt wird, werden ihre Zertifikatanforderungs-UID und die Zertifikataufgaben-SYS-ID im lokalen JSON-Cache und die Tabelle „Zertifikatanforderungs-UID zu Aufgabenzuordnung“ in der Instanz gespeichert.
    • Die ServiceNowExterner Aussteller fragt die Instanz ab, um den Status der Zertifikataufgabe zu überwachen.
    • Wenn sich die Zertifikataufgabe in befindet In Arbeit status, seine Zertifikatanforderungs-UID und die SYS-ID der Zertifikataufgabe werden der Tabelle „UID-Zuordnung externer Aussteller“ in der Instanz und dem lokalen JSON-Cache hinzugefügt. Während dieser Zeit versucht der Zertifizierungsmanager automatisch, das Zertifikat anzufordern.
    • Nach Erhalt einer Zertifikatanforderung sucht der Zertifizierungsmanager im lokalen JSON-Cache nach einer übereinstimmenden Aufgabe. Wenn gefunden, wird dieselbe Aufgabe abgefragt. Andernfalls wird die Instanz nach Datensätzen aus der UID-Zuordnungstabelle des externen Ausstellers abgefragt und der lokale JSON-Cache ausgefüllt.
    • Sobald die Aufgabe als abgeschlossen markiert und das Zertifikat generiert wurde, wird ServiceNowDer externe Aussteller sendet eine weitere Anforderung an die Instanz, lädt den Zertifikatanhang herunter und aktualisiert die Zertifikatressource und das entsprechende Geheimnis in Kubernetes.

    Externer ServiceNow-Aussteller wird in bereitgestellt Kubernetes

    Externer ServiceNow-Aussteller wird in bereitgestellt KubernetesUmfasst die folgenden Schritte:
    1. Rufen Sie auf der Downloadseite der ServiceNow-Instanz das Helm-Diagramm oder das YAML-ZIP-Paket ab.
    2. Passen Sie an manager.yaml Oder Werte.yaml Dateien nach Bedarf für Ihren spezifischen Anwendungsfall. Diese Dateien können wichtige Informationen enthalten, z. B. die Instanz-URL und die Zertifikatbesitzergruppe.
    3. Erstellen Sie ein KubernetesGeheimer Name Clusteraussteller-servicenow-Anmeldeinformationen Mit dem Anwendernamen und Passwort der Instanz.
      Beispielbefehl:
      • Erstellen Sie ein KubernetesGeheimer Name Clusteraussteller-servicenow-Anmeldeinformationen 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 Anwender über die erforderlichen Rollen verfügt, um Zertifikate anzufordern.
    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 ServiceNow-Aussteller gestartet und ausgeführt wird.

    Neuen Zertifikat-Flow anfordern

    Übermitteln Sie nach der Bereitstellung eine Zertifikatressource mit den folgenden Informationen in einer Datei mit dem Namen Certificate_clusterissuer.yaml .

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

    Hier ist eine Beispielzertifikatressource:

    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 an Kubectl Apply -f certificate_clusterissuer.yaml