Zertifikatgenerierung durch Zertifikat-Manager-Integration
Fordern Sie ein Zertifikat über Kubernetes cert-manager mit dem externen Aussteller ServiceNow (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 Kubernetes -Umgebung bereit. Aktualisieren Sie 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 einen Kubernetes geheimen Schlüssel clusterissuer-servicenow-credentials mit dem Instanzbenutzernamen und dem Passwort, um sicherzustellen, dass der Benutzer über die erforderlichen Rollen verfügt, um ein Zertifikat anzufordern.
ServiceNow Externer Aussteller (sn-external-issuer)
- Externe Aussteller erweitern die cert-manager-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 „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 Bearbeitung befindet, werden ihre Zertifikatanforderungs-UID und ihre Zertifikataufgaben-Sys-ID der UID-Zuordnungstabelle des externen Ausstellers in der Instanz und dem lokalen JSON-Cache hinzugefügt. Während dieser Zeit versucht der Zertifikatmanager automatisch, das Zertifikat anzufordern.
- Nach dem Empfang einer Zertifikatanforderung sucht der Zertifikatmanager im lokalen JSON-Cache nach einer passenden Aufgabe. Wenn gefunden, wird dieselbe Aufgabe abgefragt. Andernfalls wird die Instanz nach Datensätzen aus der Tabelle „Zuordnung der externen Aussteller-UID“ 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 den entsprechenden geheimen Schlüssel in Kubernetes.
Externer Aussteller von ServiceNow wird in bereitgestellt Kubernetes
Die Bereitstellung des externen ServiceNow-Ausstellers in Kubernetes umfasst die folgenden Schritte:
- Rufen Sie von der Download-Seite der ServiceNow-Instanz das ZIP-Paket für das ZIP-Paket „Helm Chart“ oder „YAML“ ab.
- Passen Sie die Dateien
manager.yamlodervalues.yamlnach Bedarf für Ihren spezifischen Anwendungsfall an. Diese Dateien können wichtige Informationen wie die Instanz-URL und die Zertifikatbesitzergruppe enthalten. - Erstellen Sie einen Kubernetes -Secret mit dem Namen
clusterissuer-servicenow-credentialsmit dem Instanzbenutzernamen und dem Passwort.Beispielbefehl:- Erstellen Sie einen Kubernetes -Secret mit dem Namen
clusterissuer-servicenow-credentialsmit dem Instanzbenutzernamen und dem Passwort. 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.
- Erstellen Sie einen Kubernetes -Secret mit dem Namen
- 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 zusätzliche Konfigurationen in den Dateien an Ihre spezifischen Anforderungen an.
- Stellen Sie sicher, dass die Bereitstellung erfolgreich ist und der externe Aussteller von ServiceNow ausgeführt wird.
Flow zum Anfordern eines neuen Zertifikats
Übermitteln Sie nach der Bereitstellung eine Zertifikatressource mit den folgenden Informationen in einer Datei namens certificate_clusterissuer.yaml.
- IssuerRef: clusterissuer-servicenow
- Aussteller: Issuer-servicenow
- Art: ClusterIssuer
- IssuerRef: servicenow-issuer.servicenow.com
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 apply -f certificate_clusterissuer.yaml an