Génération de certificats via l’intégration Cert-Manager
Demandez un certificat via Kubernetes cert-manager à l’aide de l’émetteur ServiceNow externe (sn-external-issuer) et enregistrez le certificat et ses informations connexes en toute sécurité dans le Kubernetes cluster en tant que secret. Dans Kubernetes, un secret est un objet qui vous permet de stocker et de gérer des informations sensibles, telles que des mots de passe, des clés API et des certificats.
Besoins de déploiement
- Déployez cert-manager dans votre Kubernetes environnement. Mettez à jour manager.yaml avec l’URL de l’instance, le groupe propriétaire du certificat, le propriétaire du certificat, l’environnement et le suivi du renouvellement.
- Déployez l’émetteur ServiceNow externe (sn-external-issuer) dans votre Kubernetes environnement. Créez un Kubernetes secret clusterissuer-servicenow-credentials avec le nom d’utilisateur et le mot de passe de l’instance, en vous assurant que l’utilisateur dispose des rôles nécessaires pour demander un certificat.
ServiceNow Émetteur externe (sn-external-issuer)
- Les émetteurs externes étendent les fonctionnalités du gestionnaire de certificats pour émettre des certificats par le biais d’API et de services non essentiels.
- L’émetteur ServiceNow externe est une implémentation spécifique à ServiceNow d’un émetteur externe.
- Lorsqu’une nouvelle tâche de certificat est créée, son UID de demande de certificat et son ID système de tâche de certification sont stockés dans le cache JSON local et dans la table UID de demande de certificat vers la carte de tâche sur l’instance.
- L’émetteur ServiceNow externe interroge l’instance pour surveiller l’état de la tâche de certificat.
- Si la tâche de certification est à l’état Travail en cours , son UID de demande de certificat et son ID système de tâche de certification sont ajoutés à la table de carte d’UID d’émetteur externe sur l’instance et dans le cache JSON local. Pendant ce temps, Cert-manager tente automatiquement de demander le certificat.
- À la réception d’une demande de certificat, le gestionnaire de certificat recherche une tâche correspondante dans le cache JSON local. S’il est trouvé, il interroge la même tâche ; Dans le cas contraire, il interroge l’instance pour les enregistrements à partir de la table Carte d’UID de l’émetteur externe et remplit le cache JSON local.
- Une fois que la tâche est marquée comme terminée et que le certificat est généré, l’émetteur ServiceNow externe envoie une autre demande à l’instance, télécharge la pièce jointe du certificat et met à jour la ressource de certificat et le secret correspondant dans Kubernetes.
Déploiement de l’émetteur externe ServiceNow dans Kubernetes
Le déploiement de l’émetteur externe ServiceNow dans Kubernetes implique les étapes suivantes :
- Sur la page de téléchargement de l’instance ServiceNow, procurez-vous le package ZIP du graphique en barres ou du YAML.
- Personnalisez les fichiers
manager.yamlouvalues.yamlselon vos besoins pour votre cas d’utilisation spécifique. Ces fichiers peuvent inclure des informations essentielles telles que l’URL de l’instance et le groupe propriétaire du certificat. - Créez un Kubernetes secret nommé
clusterissuer-servicenow-credentialsavec le nom d’utilisateur et le mot de passe de l’instance.Exemple de commande :- Créez un Kubernetes secret nommé
clusterissuer-servicenow-credentialsavec le nom d’utilisateur et le mot de passe de l’instance. Exemple de commande :kubectl create secret generic clusterissuer-servicenow-credentials --from-literal=user=<user_name> --from-literal=password=<password> -n system - Assurez-vous que l’utilisateur dispose des rôles nécessaires pour demander des certificats.
- Créez un Kubernetes secret nommé
- Exécutez les commandes suivantes pour le déploiement.
kubectl create ns system kubectl apply -f crd kubectl apply -f rbac kubectl apply -f issuers kubectl apply -f manager/manager.yaml - (Facultatif) Personnalisez toutes les configurations supplémentaires dans les fichiers en fonction de vos besoins spécifiques.
- Assurez-vous que le déploiement est réussi et que l’émetteur externe ServiceNow est opérationnel.
Demander un nouveau flux de certificats
Après le déploiement, soumettez une ressource de certificat avec les informations suivantes dans un fichier nommé certificate_clusterissuer.yaml.
- issuerRef : clusterissuer-servicenow
- Émetteur : Issuer-ServiceNow
- type : ClusterIssuer
- issuerRef : servicenow-issuer.servicenow.com
Voici un exemple de ressource de certificat :
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
Appliquer la ressource de certificat à l’aide de kubectl apply -f certificate_clusterissuer.yaml