Zertifikatgenerierung über die Zertifizierung-Manager-Integration
Fordern Sie ein Zertifikat über an Kubernetes cert-Manager mit ServiceNow Externer Aussteller (sn-externer Aussteller) und speichern Sie das Zertifikat und die zugehörigen Informationen sicher im Kubernetes Cluster 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 Kubernetes Umgebung. Aktualisieren manager.yaml Mit Instanz-URL, Zertifikatbesitzergruppe, Zertifikatbesitzer, Umgebung und Verlängerungsnachverfolgung.
- Stellen Sie bereit ServiceNow Externer Aussteller (sn-external-issuer) in Ihrem Kubernetes Umgebung. Erstellen Sie einen Kubernetes Geheimnis clusterissuer-servicenow-credentialsMit Anwendername 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 ServiceNow Externer 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 ServiceNow Externer 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 fragt sie die Instanz nach Datensätzen aus der Tabelle „UID-Zuordnung des externen Ausstellers“ ab und füllt den lokalen JSON-Cache aus.
- Sobald die Aufgabe als abgeschlossen markiert wurde und das Zertifikat generiert wurde, wird der ServiceNow Der externe Aussteller sendet eine weitere Anforderung an die Instanz, lädt den Zertifikatanhang herunter und aktualisiert die Zertifikatressource und das entsprechende Geheimnis in Kubernetes.
Bereitstellung des externen Ausstellers von ServiceNow in Kubernetes
- Rufen Sie auf der Downloadseite der ServiceNow-Instanz das Helm Chart 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 wie die Instanz-URL und die Zertifikatbesitzergruppe enthalten. - Erstellen Sie einen Kubernetes Geheimer Name
Clusteraussteller-servicenow-AnmeldeinformationenMit Anwendername und Passwort der Instanz.Beispielbefehl:- Erstellen Sie einen Kubernetes Geheimer Name
Clusteraussteller-servicenow-AnmeldeinformationenMit Anwendername 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 einen Kubernetes Geheimer 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 zusätzliche Konfigurationen in den Dateien an Ihre spezifischen Anforderungen an.
- Stellen Sie sicher, dass die Bereitstellung erfolgreich ist und der externe ServiceNow-Aussteller hochgefahren ist und ausgeführt wird.
Flow „Neues Zertifikat 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 Beispiel-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 an Kubectl Apply -f certificate_clusterissuer.yaml