Zertifikatgenerierung über Zertifikat-Manager-Integration
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:
- Rufen Sie auf der Downloadseite der ServiceNow-Instanz das ZIP-Paket „Helm Chart“ oder „YAML“ ab.
- 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. - Erstellen Sie ein Kubernetes -Geheimnis mit dem Namen
clusterissuer-servicenow-credentialsmit dem Anwendernamen und Passwort der Instanz.Beispielbefehl:- Erstellen Sie ein Kubernetes -Geheimnis mit dem Namen
clusterissuer-servicenow-credentialsmit 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.
- Erstellen Sie ein Kubernetes -Geheimnis 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 alle zusätzlichen Konfigurationen in den Dateien an Ihre spezifischen Anforderungen an.
- 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