Comment rejeter une demande de certificat sur Puppet Master?

13

J'ai des demandes d'agents dont le nom d'hôte est incorrect. J'ai corrigé cela, mais j'ai toujours les demandes en suspens avec les mauvais noms d'hôte.

J'ai essayé:

$puppet cert list
  "wrong.host.name" (SHA256) 8E:...:51

$ puppet cert revoke wrong.host.name
Error: Could not find a serial number for wrong.host.name

$ puppet cert clean wrong.host.name
Error: Could not find a serial number for wrong.host.name

Quelle est la bonne façon de s'en débarrasser?

Louis
la source

Réponses:

23

L'utilisation cafonctionne mieux et peut supprimer un certificat en une seule étape contrairement à cert. Surtout, cela ne vous oblige pas à signer temporairement un certificat non valide.

$ puppet ca destroy wrong.host.name
Notice: Removing file Puppet::SSL::CertificateRequest wrong.host.name at '/var/lib/puppet/ssl/ca/requests/wrong.host.name.pem'
Deleted for wrong.host.name: Puppet::SSL::CertificateRequest

La puppet cacommande a récemment été déconseillée, donc à un moment donné, elle peut disparaître, mais il n'y a pas de commande équivalente. Un bogue a été déposé, pour lequel vous pourriez voter si vous pensez que c'est un peu idiot de supprimer cette commande sans remplacement.

pseudo
la source
C'est la bonne réponse. Toutes les instructions données par la réponse acceptée ne fonctionnent pas ou vous obligent à signer des certificats que vous savez être mauvais.
tedivm
Ce que @tedivm a dit. Par conséquent: +1.
gf_
Cela fonctionne, mais il est devenu obsolète. Quelqu'un sait quelle est la nouvelle méthode?
Swiss
@Swiss avez-vous un lien vers certains documents montrant qu'il est obsolète?
Nick
1
puppet cert cleanfonctionne maintenant pour supprimer les demandes. Voir le rapport de bogue lié.
7yl4r
3

Solution possible 1:

Utiliser le puppet cert cleansur le maître de marionnettes est la bonne façon. Cependant, puisque vous obtenez des erreurs, vous pouvez avoir un mauvais inventaire de certificats.

Essayez de faire un ré-inventaire puis un nettoyage:

$ puppet cert reinventory
$ puppet cert clean --all

Remarque: mon exemple utilise le --alldrapeau, cela effacera tous les certificats, signés et non signés. Sachez également que le Puppet master doit être arrêté avant d'exécuter a reinventory.

Source: http://docs.puppetlabs.com/references/3.6.2/man/cert.html

Solution possible 2:

$ puppet cert sign wrong.host.name
Notice: Signed certificate request for wrong.host.name
Notice: Removing file Puppet::SSL::CertificateRequest wrong.host.name at '/var/lib/puppet/ssl/ca/requests/wrong.host.name.pem'

$ puppet cert clean wrong.host.name
Notice: Revoked certificate with serial 87
Notice: Removing file Puppet::SSL::Certificate wrong.host.name at '/var/lib/puppet/ssl/ca/signed/wrong.host.name.pem'
Notice: Removing file Puppet::SSL::Certificate wrong.host.name at '/var/lib/puppet/ssl/certs/wrong.host.name.pem'

Solution possible 3:

D'abord: sur le serveur

$ puppet cert --revoke wrong.host.name
$ puppet cert --clean wrong.host.name

Deuxièmement: sur le client

$ rm -rf /usr/lib/puppet/ssl
$ puppet agent --server [puppetmaster domain name] --waitforcert 60

Troisième: sur le serveur (ajustez si nécessaire)

$ puppet cert --list (you should see your host)
$ puppet cert --sign wrong.host.name

Vérifiez également que votre client peut accéder à votre [nom de domaine puppetmaster].

Source: /server/574976/puppet-trying-to-configure-puppet-client-for-first-use-but-got-some-problems-wi

tbenz9
la source
Merci, j'ai essayé reinventoryet puis clean wrong.host.nameparce que je ne veux pas révoquer les bons certificats aussi, mais je reçois toujours l'erreur de numéro de série.
Louis
Bonne prise sur le --all. Je viens d'ajouter une mise à jour qui vaut le coup.
tbenz9
Super, après avoir puppet cert sign wrong.host.nameutilisé des cleanœuvres. Il me semble que je dois d'abord le signer.
Louis
1
N'oubliez pas non plus de redémarrer le service maître de marionnettes après avoir nettoyé les certificats.
Robert Fey
1
Pour info, l'autre réponse est bien meilleure que celle-ci. Si vous suivez les conseils des OP, vous allez exécuter des commandes qui ne fonctionnent pas (comme la commande clean) ou vous allez signer des certificats que vous savez incorrects. Si vous suivez les conseils ci-dessous et utilisez simplement, puppet ca destroy wrong.host.namevous n'avez pas à introduire de risques de sécurité dans votre infrastructure.
tedivm
2

Voici comment j'ai fait

[root@puppetmc ca]# puppet cert clean sparrow.home
Error: Could not find a serial number for sparrow.home
[root@puppetmc ca]# cat inventory.txt 
0x0002 2015-05-17T06:33:29GMT 2020-05-16T06:33:29GMT /CN=puppetmc.home
0x0003 2015-05-17T23:25:33GMT 2020-05-16T23:25:33GMT /CN=sparrow.rospop.com
0x0004 2015-05-18T00:53:18GMT 2020-05-17T00:53:18GMT /CN=puppetmc.home
0x0005 2015-05-18T02:18:12GMT 2020-05-17T02:18:12GMT /CN=sparrow.rospop.com
[root@puppetmc ca]# vi  inventory.txt 

a ajouté la ligne ci-dessous à l'inventaire.txt:

0x0001 2015-05-17T06:33:29GMT 2020-05-16T06:33:29GMT /CN=sparrow.home

puis exécutez

[root@puppetmc ca]# puppet cert clean sparrow.home
Notice: Revoked certificate with serial 1
Notice: Removing file Puppet::SSL::CertificateRequest sparrow.home at '/var/lib/puppet/ssl/ca/requests/sparrow.home.pem'
Vince Bhebhe
lowlysquib
la source