Ajouter un certificat SSL/TLS au cluster Kubernetes

Ajouter Un Certificat Ssl Tls Au Cluster Kubernetes



Les certificats SSL sont utilisés pour sécuriser l'application qui est faite sur Kubernetes pour une sécurité future. Prenons un autre certificat sécurisé, TLS, qui contient une clé privée très sécurisée. Les certificats sont créés avec des certificats :  API K8r.io. Nous expliquerons la configuration des certificats SSL à l'aide d'exemples détaillés. Commençons par le certificat SSL dans Kubernetes. Les certificats SSL sont très importants pour les navigateurs. Le navigateur, à l'aide des certificats SSL et TLS, crée une connexion sécurisée avec les services Kubernetes.

Conditions préalables:

Chaque utilisateur doit disposer de la dernière version d'Ubuntu de son système. L'utilisateur du système d'exploitation Windows installe une boîte virtuelle et ajoute virtuellement Ubuntu ou Linux au système. Les utilisateurs doivent être familiarisés avec Kubernetes, la ligne de commande kubectl, les pods et les clusters, et connaître le DNS du cluster pour mieux comprendre ce sujet.







Examinons brièvement la configuration du certificat SSL dans Kubernetes en divisant l'ensemble de la procédure en différentes étapes.



Étape 1 : Démarrer le panneau de configuration Kubernetes

Nous voulons un environnement dans notre application où nous pouvons exécuter des commandes Kubernetes pour effectuer des tâches Kubernetes. En conséquence, Kubernetes nous fournit un conteneur local appelé 'minikube'. À chaque démarrage de l'application Kubernetes, nous démarrerons un minikube dans Kubernetes, qui est essentiellement un terminal, nécessaire pour exécuter les commandes Kubernetes. Dans cette étape, nous exécutons la commande pour initialiser Minikube, qui est :



> commencer minikube

Lorsque nous exécutons cette commande sur notre terminal système, l'exécution de la commande commence en appuyant sur le bouton Entrée. La commande nous montre un résultat de capture d'écran ci-joint en retour.





Étape 2 : Générer une demande de signature de certificat

Après avoir créé un cluster à l'aide de Minikube, nous souhaitons maintenant créer une demande de signature de certificat. En échange de cette action, nous exécutons la commande pour signer la demande de certificat et générer une clé privée.



> chat << EOF | genkey cfssl - | cfssljson -seulement serveur

Après l'exécution de la requête, la requête est générée avec succès avec la clé privée. Le résultat est joint ci-dessus sous forme de capture d'écran.

Étape 3 : Créer un manifeste de demande de signature de certificat dans le fichier YAML

Dans cette étape, nous allons créer un manifeste de fichier YAML pour créer un CSR dans Kubernetes. Nous exécutons la commande ci-dessous :

> chat << EOF | kubectl appliquer -F

Suite à l'exécution de cette commande, un fichier YAML est créé avec succès. Et nous l'envoyons au serveur API, comme indiqué dans la capture d'écran ci-jointe.

Étape 4 :  Obtenir l'état de la demande de signature de certificat

Dans cette étape, nous examinerons le statut CSR tel qu'il est vu via l'API. Nous pouvons exécuter la commande donnée pour récupérer l'état de la demande de certificat.

> kubectl describe csv my-svc.my-namespace

Lorsque la commande est exécutée, l'état CSR s'affiche dans la sortie, comme indiqué dans la capture d'écran jointe. Le statut de CSR est 'en attente' et ce statut provient de l'API. Le nom du fichier est my-svc. my-namespace et les annotations, l'utilisateur demandeur et le sujet, les autres noms de sujet ayant des noms DNS et des adresses IP, les événements, etc. sont inclus dans la description CSR. Le statut est 'en attente', ce qui signifie que le certificat CSR n'a pas encore été approuvé.

Étape 5 :  Approbation des certificats RSE

Le statut du certificat CSR est toujours en attente. Donc, dans ce cas, nous enverrons une requête à l'API de Kubernetes pour approuver le certificat CSR. Nous exécutons cette commande pour approbation :

> certificat kubectl approuver my-svc .my-namespace

La commande affiche la sortie après exécution. Une personne autorisée, telle que l'administration Kubernetes, approuve le certificat CSR. Comme nous sommes des utilisateurs autorisés, nous créons des fichiers YAML. En conséquence, le certificat CSR est facilement approuvé à l'aide de la commande, comme indiqué dans la capture d'écran ci-dessous pour plus de clarté.

my-svc.my-namespace est approuvé avec succès via l'API certificates.k8s.io.

Étape 6 : Récupérer le certificat CSR dans Kubernetes

Nous attendons maintenant de voir si le certificat RSE a été approuvé. Nous allons donc exécuter la commande pour obtenir une liste de tous les certificats CSR actuellement actifs dans le système. Exécutez la commande :

> kubectl obtenir la RSE

Le nom du certificat CSR approuvé dans Kubernetes est indiqué dans la capture d'écran ci-jointe. Cette commande renvoie le nom, l'âge, le nom du signataire, le demandeur, la durée demandée et l'état du certificat CSR.

Étape 7 : Signer le certificat en créant une autorité

Dans cette étape, nous verrons comment les certificats sont signés dans Kubernetes. Le certificat SSL est approuvé mais pas encore signé. Le nom du signataire apparaît sur le certificat dans Kubernetes. Nous exécutons la commande par laquelle le signataire demandé signe le certificat. La commande est :

> chat << EOF | cfssl genart -initca - | cfssljson - nu ca

{

'CN' : 'Mon exemple de signature' ,
'clé' : {
'quelque chose' : 'rsa' ,
'Taille' : 2048
}


}

EOF

La commande est exécutée pour signer numériquement le certificat. Le signataire signe les certificats demandés et met à jour l'état de l'API avec la commande 'Certificat SSL'. Nous avons créé un certificat de signature en exécutant la commande ci-dessus et le résultat est affiché dans la capture d'écran ci-jointe. Un numéro de série unique a été utilisé avec succès pour signer le certificat.

Étape 8 :  Créer un fichier JSON pour émettre un certificat

Après la signature du certificat, nous créons un fichier JSON à partir duquel nous émettons un certificat. Nous allons créer un fichier JSON en exécutant la commande suivante avec la capture d'écran ci-jointe :

> nano fichier de signature.json

Une fois la commande exécutée, le fichier JSON est créé, comme illustré dans la capture d'écran ci-dessous.

Étape 9 :  Utilisez Server-Signing-config.json

Dans cette étape, nous utilisons le fichier server-signing-config qui se trouve dans JSON pour signer et émettre les certificats. Nous exécutons la commande de signature de certificat avec un fichier de clé privée.

> kubectl obtenir csr my-svc.my-namespace -Les jsonpath =' { .spec.request } ' | \base64 --décoder | \ signe cfssl -que ca.pem -ca clé-ca clé-ca.pem -config serveur-signature-config.json | \ cfssljson -seulement ca-serveur-signé

Après cette commande, le certificat déjà défini dans le fichier json est signé. Le numéro de série de ce CSR est généré. Ici, nous générons un fichier de certificat de diffusion signé nommé « ca-signed-server.pem ».

Étape 10 : Téléchargement du certificat signé dans l'objet API

Dans cette étape, nous téléchargeons le certificat signé dans le statut d'API en attente que nous avons vu ci-dessus. La commande pour le téléchargement est :

> kubectl obtenir csr my-svc.my-namespace -Les json | \ jq '.status.certificat = '

'
$ ( base64 ca-signed-server.pem | tr -ré '\n' ) ''' | \

> kubectl remplacer --cru / apis / certificats.k8s.io / v1 / demandes de signature de certificat / espace de noms my-svc.my-  / statut -F -

Lorsque cette commande est exécutée, le certificat signé est téléchargé avec succès chaque fois que le CSR est approuvé. La capture d'écran ci-jointe nous montre un format JSON qui télécharge le certificat signé en tant qu'objets API.

Étape 11 : Inscrire des certificats approuvés dans Kubernetes

Nous exécutons à nouveau la commande pour afficher les certificats approuvés dans Kubernetes.

> kubectl obtenir la RSE

Le certificat a été approuvé et délivré avec succès, comme indiqué dans la capture d'écran ci-dessus.

Étape 12 : Enregistrer le certificat dans le système

Dans cette étape, nous apprendrons comment télécharger le certificat signé et l'utiliser avec succès dans notre système. Nous déployons facilement le certificat sur le serveur. La commande est :

> kubectl obtenir csr my-svc.my-namespace -Les jsonpath = '{.status.certificat}' \

| base64 --décoder > serveur.crt

Étape 13 :  Remplir le certificat

Dans cette étape, nous apprendrons comment remplir le certificat sur le serveur afin que nous puissions facilement utiliser le certificat pour la sécurité Web. Nous lançons la commande :

Kalsoom @ Kalsoom > kubectl créer un serveur tls secret --cert serveur.crt --clé clé-serveur.pem

La capture d'écran ci-jointe nous montre que le serveur sécurisé ou secret TLS est créé avec succès avec le nom cert server.cr et la clé privée server-key.pem.

Étape 14 : Configurez le mappage du certificat

Dans cette étape, nous allons configurer le certificat pour nous assurer qu'il s'agit d'un certificat de service sécurisé en exécutant la commande ci-dessous :

> kubectl créer configmap example-serving-ca --from-fichier ca.crt=ca.pem

Comme indiqué dans la capture d'écran ci-jointe, la carte de configuration/example-serving-ca est créée avec succès dans Kubernetes pour une connexion sécurisée sur le serveur Web.

Conclusion

Les certificats SSL sont utilisés pour assurer la sécurité des applications Kubernetes sur le serveur Web. Nous avons expliqué chaque étape en détail pour votre compréhension. Vous pouvez également exécuter les mêmes commandes sur votre application Kubernetes pour installer le certificat SSL.