Comment gérer les certificats de Puppet 4

Une feuille de triche pour marionnettes

Puppet est un outil de gestion de la configuration qui aide les administrateurs système à automatiser l’approvisionnement, la configuration et la gestion d’une infrastructure de serveur. Il s’exécute généralement en mode maître / agent où le serveur maître gère la configuration de plusieurs nœuds d’agent. La communication entre le maître et les agents est autorisée et sécurisée avec HTTPS vérifié par le client, ce qui nécessite des certificats SSL d’identification valides. Le maître de marionnettes agit en tant qu’autorité de certification pour la gestion de ces certificats.

Ce guide de style aide-mémoire fournit une référence rapide sur l’utilisation de la commande + puppet cert + pour gérer ces certificats.

  • Comment utiliser ce guide: *

  • Ce guide est au format aide-mémoire avec des extraits de ligne de commande autonomes.

  • Accédez à toute section pertinente à la tâche que vous tentez de terminer.

Liste des demandes de certificat

Lorsque les serveurs de l’agent Puppet sont mis en ligne, si tout est correctement configuré, ils présentent une demande de signature de certificat au maître Puppet. Ces demandes peuvent être vérifiées avec la commande + puppet cert list.

Répertorier toutes les demandes, signées et non signées

Pour afficher toutes les demandes de certificat, signées et non signées, utilisez l’indicateur + - all + comme suit:

sudo puppet cert list --all

Les demandes signées sont précédées d’un plus (+) et les demandes non signées ne le sont pas. Dans le résultat ci-dessous, + host2.example.com + n’a pas été signé, tandis que + host1 + et + puppet + ont:

Output:+ "host1.example.com"    (SHA256) 51:D8:7A:EB:40:66:74:FD:0A:03:5D:35:AA:4D:B3:FA:35:99:C2:A8:C9:01:83:34:F6:16:60:BB:46:1F:33:3F
 "host2.example.com"   (SHA256) 3C:A9:96:3A:8D:24:5F:25:DB:FF:67:B5:22:B1:46:D9:89:F1:75:EC:BA:F2:D6:87:70:0C:59:97:11:11:01:E3
+ "puppet.example.com" (SHA256) 12:32:47:18:D1:12:85:A6:EA:D4:51:9C:24:96:E2:8A:51:41:8D:EB:E8:7C:EB:47:94:B0:8B:16:16:51:6A:D1 (alt names: "DNS:puppet", "DNS:puppet.localdomain", "DNS:puppet.example.com")

Répertorier les demandes non signées

Avant que Puppet Server puisse communiquer avec le nœud agent et le contrôler, il doit signer le certificat de ce nœud agent particulier. Pour examiner les requêtes non signées, utilisez la commande + puppet cert list du serveur Puppet:

sudo puppet cert list

Cela ne listera que les requêtes non signées. La sortie ressemblera à quelque chose comme:

Output: "host2.example.com" (SHA256) 9D:49:DE:46:1C:0F:40:19:9B:55:FC:97:69:E9:2B:C4:93:D8:A6:3C:B8:AB:CB:DD:E6:F5:A0:9C:37:C8:66:A0

L’absence de signe plus (+) indique que ces certificats n’ont pas encore été signés. S’il n’y a pas de demandes non signées, vous serez renvoyé à l’invite de commande sans résultat.

Signer les demandes de certificat

Signer des demandes spécifiques

Pour signer une seule demande de certificat, utilisez la commande + puppet cert sign +, avec un ou plusieurs noms d’hôte, comme indiqué dans la demande de certificat.

puppet cert sign

Une sortie similaire à l’exemple ci-dessous indique que la demande de certificat a été signée:

Output:Notice: Signed certificate request for
Notice: Removing file Puppet::SSL::CertificateRequest  at '/etc/puppetlabs/puppet/ssl/ca/requests/.pem'

Signer toutes les demandes

Vous pouvez signer toutes les demandes en ajoutant l’indicateur + - all +:

sudo puppet cert sign --all

Révoquer des certificats

Finalement, vous voudrez peut-être supprimer un hôte de Puppet ou reconstruire un hôte, puis le rajouter. Dans ce cas, vous devrez révoquer le certificat de l’hôte du maître des marionnettes. Pour ce faire, utilisez l’action + clean +:

Révoquer des certificats spécifiques

Vous pouvez révoquer un ou plusieurs certificats spécifiques avec + puppet cert clean + en fournissant un ou plusieurs noms d’hôte tels qu’ils apparaissent dans le certificat:

sudo puppet cert clean

Après la révocation d’un certificat, vous devez restart the Puppet master pour que la révocation prenne effet.

sudo service puppetserver reload

La prochaine fois que + puppet agent sera exécuté sur le nœud de l’agent, il enverra une nouvelle demande de signature de certificat au maître des marionnettes, qui peut être signée avec` + puppet cert sign`. Vous pouvez déclencher la demande immédiatement avec:

sudo puppet agent --test

Révoquer plusieurs certificats

Puppet n’autorise pas la suppression en masse de certificats avec l’indicateur + - all +, mais plusieurs certificats peuvent être révoqués à la fois en fournissant les noms d’hôte, séparés par un espace:

sudo puppet cert clean   . . .

Après la révocation de certificats, vous devez restart the Puppet master pour que les révocations prennent effet.

sudo service puppetserver reload

Conclusion

Ce guide couvre certaines des commandes courantes de gestion des certificats Puppet dans Puppet version 4.x. Il existe d’autres actions et indicateurs pouvant être utilisés avec + puppet cert +. Pour une liste complète, consultez la page `+puppet cert + `.