Jak odrzucić prośbę o certyfikat na Puppet Master?

13

Mam kilka próśb od agentów, którzy mieli złe nazwy hostów. Poprawiłem to, ale nadal mam zaległe żądania ze złymi nazwami hostów.

Próbowałem:

$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

Jak właściwie się ich pozbyć?

Louis
źródło

Odpowiedzi:

23

Korzystanie cadziała lepiej i może usunąć certyfikat w jednym kroku, w przeciwieństwie do cert. Co ważne, nie powoduje tymczasowego podpisania nieprawidłowego certyfikatu.

$ 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

puppet caKomenda została niedawno przestarzałe więc w pewnym momencie może odejść, ale nie ma odpowiednik polecenia. Zgłoszono błąd , na który można głosować, jeśli uważasz, że usunięcie tego polecenia bez zamiany jest trochę głupie.

Nacięcie
źródło
To jest właściwa odpowiedź. Wszystkie instrukcje podane w zaakceptowanej odpowiedzi albo nie działają, albo wymagają podpisania certyfikatów, o których wiadomo, że są złe.
tedivm
Co powiedział @tedivm. Dlatego: +1.
gf_
To działa, ale zostało oznaczone jako przestarzałe. Czy ktoś wie, jaka jest nowa metoda?
Szwajcarski
@ Szwajcar, czy masz link do niektórych dokumentów wskazujących, że jest on przestarzały?
Nick
1
puppet cert cleanteraz działa, aby usunąć żądania. Zobacz połączony raport o błędzie.
7yl4r
3

Możliwe rozwiązanie 1:

Korzystanie z puppet cert cleanlalek-mistrza jest właściwe. Ponieważ jednak pojawiają się błędy, możesz mieć zły spis certyfikatów.

Spróbuj dokonać ponownej inwentaryzacji, a następnie wyczyść:

$ puppet cert reinventory
$ puppet cert clean --all

Uwaga: mój przykład używa --allflagi, to wyczyści wszystkie certyfikaty, podpisane i niepodpisane. Pamiętaj też, że mistrz lalek powinien zostać zatrzymany przed uruchomieniem reinventory.

Źródło: http://docs.puppetlabs.com/references/3.6.2/man/cert.html

Możliwe rozwiązanie 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'

Możliwe rozwiązanie 3:

Po pierwsze: na serwerze

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

Po drugie: na kliencie

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

Po trzecie: na serwerze (dostosuj w razie potrzeby)

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

Sprawdź także, czy Twój klient może uzyskać dostęp do Twojej [nazwy domeny puppetmaster].

Źródło: /server/574976/puppet-trying-to-configure-puppet-client-for-first-use-but-got-some-problems-wi

tbenz9
źródło
Dzięki, próbowałem, reinventorya potem, clean wrong.host.nameponieważ nie chcę odwoływać również dobrych certyfikatów, ale nadal pojawia się błąd numeru seryjnego.
Louis
Dobry chwyt na --all. Właśnie dodałem aktualizację, którą warto wypróbować.
tbenz9
Świetnie, po zrobieniu puppet cert sign wrong.host.namekorzystania z cleanprac. Wydaje się błędne, że najpierw muszę to podpisać.
Louis
1
Nie zapomnij również ponownie uruchomić usługi Master Puppet po wyczyszczeniu jakichkolwiek certyfikatów.
Robert Fey,
1
Do Twojej wiadomości, druga odpowiedź jest znacznie lepsza niż ta. Jeśli zastosujesz się do wskazówek OP, będziesz uruchamiać polecenia, które nie działają (takie jak polecenie clean) lub podpisujesz certyfikaty, o których wiesz, że są złe. Jeśli zastosujesz się do poniższych wskazówek i po prostu skorzystasz puppet ca destroy wrong.host.name, nie musisz wprowadzać zagrożeń bezpieczeństwa do infrastruktury.
tedivm
2

Oto jak to zrobiłem

[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 

dodał poniższy wiersz do inventory.txt:

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

następnie uruchomić

[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
źródło