Wie lehne ich eine Zertifikatsanfrage für Puppet Master ab?

13

Ich habe einige Anfragen von Agenten mit falschen Hostnamen. Ich habe das korrigiert, habe aber immer noch die ausstehenden Anfragen mit den schlechten Hostnamen.

Ich habe es versucht:

$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

Was ist der richtige Weg, um sie loszuwerden?

Louis
quelle

Antworten:

23

Verwenden cafunktioniert besser und kann anders als ein Zertifikat in einem einzigen Schritt entfernen cert. Es ist wichtig, dass Sie kein ungültiges Zertifikat vorübergehend signieren.

$ 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

Der puppet caBefehl wurde kürzlich verworfen, sodass er möglicherweise irgendwann nicht mehr angezeigt wird, es gibt jedoch keinen entsprechenden Befehl. Es gibt einen Fehler , für den Sie stimmen können, wenn Sie der Meinung sind, dass es etwas albern ist, diesen Befehl ohne Ersatz zu entfernen.

Nick
quelle
Das ist die richtige Antwort. Alle Anweisungen in der akzeptierten Antwort funktionieren entweder nicht oder erfordern, dass Sie Zertifikate unterzeichnen, von denen Sie wissen, dass sie schlecht sind.
Tedivm
Was @tedivm gesagt hat. Deshalb: +1.
gf_
Dies funktioniert, wurde jedoch als veraltet markiert. Weiß jemand was die neue Methode ist?
Schweizer
@Swiss haben Sie einen Link zu einigen Dokumenten, die anzeigen, dass sie veraltet sind?
Nick
1
puppet cert cleanJetzt funktioniert das Entfernen von Anfragen. Siehe den verknüpften Fehlerbericht.
7yl4r
3

Mögliche Lösung 1:

Die Benutzung des puppet cert cleanPuppenmeisters ist der richtige Weg. Da Sie jedoch Fehler erhalten, verfügen Sie möglicherweise über einen schlechten Bestand an Zertifikaten.

Führen Sie eine erneute Bestandsaufnahme durch und reinigen Sie dann:

$ puppet cert reinventory
$ puppet cert clean --all

Hinweis: In meinem Beispiel wird das --allFlag verwendet. Dadurch werden alle signierten und nicht signierten Zertifikate gelöscht. Beachten Sie auch, dass der Puppenmeister angehalten werden sollte, bevor Sie a ausführen reinventory.

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

Mögliche Lösung 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'

Mögliche Lösung 3:

Erstens: Auf dem Server

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

Zweitens: Auf Client

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

Drittens: Auf dem Server (nach Bedarf anpassen)

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

Überprüfen Sie außerdem, ob Ihr Kunde Ihren [Puppenmeister-Domainnamen] erreichen kann.

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

tbenz9
quelle
Danke, ich habe es versucht reinventoryund dann, clean wrong.host.nameweil ich die guten Zertifikate auch nicht widerrufen möchte, aber ich bekomme immer noch den Seriennummernfehler.
Louis
Guter Fang auf der --all. Ich habe gerade ein Update hinzugefügt, das einen Versuch wert ist.
tbenz9
Große, nachdem ich puppet cert sign wrong.host.namemit cleanArbeiten. Scheint falsch, dass ich es allerdings erst unterschreiben muss.
Louis
1
Vergessen Sie auch nicht, den Puppet Master-Dienst nach dem Reinigen der Zertifikate neu zu starten.
Robert Fey
1
Zu Ihrer Information, die andere Antwort ist viel besser als diese. Wenn Sie den Anweisungen von OP folgen, führen Sie Befehle aus, die nicht funktionieren (z. B. den Befehl clean), oder Sie signieren Zertifikate, von denen Sie wissen, dass sie schlecht sind. Wenn Sie die folgenden Hinweise befolgen und einfach verwenden, müssen puppet ca destroy wrong.host.nameSie keine Sicherheitsrisiken für Ihre Infrastruktur einführen.
Tedivm
2

So habe ich es gemacht

[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 

hat die folgende Zeile zu inventory.txt hinzugefügt:

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

dann renne

[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
quelle