Zertifikatgenerierung über Zertifizierungsmanager-Integration
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
- Rufen Sie auf der Downloadseite der ServiceNow-Instanz das Helm-Diagramm oder das YAML-ZIP-Paket ab.
- Passen Sie an
manager.yamlOderWerte.yamlDateien nach Bedarf für Ihren spezifischen Anwendungsfall. Diese Dateien können wichtige Informationen enthalten, z. B. die Instanz-URL und die Zertifikatbesitzergruppe. - Erstellen Sie ein KubernetesGeheimer Name
Clusteraussteller-servicenow-AnmeldeinformationenMit dem Anwendernamen und Passwort der Instanz.Beispielbefehl:- Erstellen Sie ein KubernetesGeheimer Name
Clusteraussteller-servicenow-AnmeldeinformationenMit 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.
- Erstellen Sie ein KubernetesGeheimer Name
- 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 - (Optional) Passen Sie alle zusätzlichen Konfigurationen in den Dateien an Ihre spezifischen Anforderungen an.
- 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