Je joue avec un agent Puppet et un maître Puppet et j'ai remarqué que l'utilitaire Puppet cert fournit une empreinte digitale pour la clé publique de mon agent car il a demandé à être signé:
$ puppet cert list
"dockerduck" (SHA256) 1D:72:C5:42:A5:F4:1C:46:35:DB:65:66:B8:B8:06:28:7A:D4:40:FA:D2:D5:05:1A:8F:43:60:6C:CA:D1:FF:79
Comment vérifier que c'est la bonne clé?
Sur l'agent Puppet, prendre un sha256sum
me donne quelque chose de radicalement différent:
$ sha256sum /var/lib/puppet/ssl/public_keys/dockerduck.pem
f1f1d198073c420af466ec05d3204752aaa59ebe3a2f593114da711a8897efa3
Si je me souviens bien, les certificats fournissent des sommes de contrôle de leurs clés publiques dans les fichiers de clés eux-mêmes. Comment accéder à une ou plusieurs empreintes digitales de clés?
L'utilitaire de ligne de commande OpenSSL peut être utilisé pour inspecter les certificats (et les clés privées, et bien d'autres choses). Pour tout voir dans le certificat, vous pouvez faire:
openssl x509 -in CERT.pem -noout -text
Pour obtenir l'empreinte SHA256, vous devez:
openssl x509 -in CERT.pem -noout -sha256 -fingerprint
La meilleure façon de confirmer l'empreinte digitale de l'agent, au moins dans Puppet 3.6, est d'exécuter la commande suivante dans votre agent:
puppet agent --fingerprint