Como rejeitar a solicitação de certificado no Puppet Master?

13

Tenho alguns pedidos de agentes que tinham nomes de host ruins. Eu corrigi isso, mas ainda tenho os pedidos pendentes com os nomes de host incorretos.

Eu tentei:

$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

Qual é a maneira correta de se livrar deles?

Louis
fonte

Respostas:

23

Usar cafunciona melhor e pode remover um certificado em uma única etapa, ao contrário cert. Importante, isso não faz com que você assine temporariamente um certificado inválido.

$ 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

O puppet cacomando foi recentemente descontinuado e, em algum momento, ele pode desaparecer, mas não há comando equivalente. Há um bug arquivado, no qual você poderia votar se acha um pouco tolo remover este comando sem substituição.

usuario
fonte
Esta é a resposta certa. Todas as instruções fornecidas pela resposta aceita não funcionam ou exigem que você assine certificados que você sabe que são ruins.
Tedivm
O que @tedivm disse. Portanto: +1.
gf_ 19/07/2016
Isso funciona, mas foi marcado como obsoleto. Alguém sabe qual é o novo método?
suíço
@Swiss você tem um link para alguns documentos que mostram que está obsoleto?
21417 Nick
1
puppet cert cleanagora funciona para remover solicitações. Veja o relatório de bug vinculado.
7694r 11/0918
3

Possível solução 1:

Usar o puppet cert cleanmestre de marionetes é a maneira correta. No entanto, como você está recebendo erros, pode ter um inventário ruim de certificados.

Tente fazer um re-inventário e depois uma limpeza:

$ puppet cert reinventory
$ puppet cert clean --all

Nota: meu exemplo usa a --allbandeira, isso limpará todos os certificados, assinados e não assinados. Além disso, esteja ciente de que o mestre de marionetes deve ser parado antes de executar a reinventory.

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

Solução possível 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'

Solução possível 3:

Primeiro: No servidor

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

Segundo: no cliente

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

Terceiro: no servidor (ajuste conforme necessário)

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

Além disso, verifique se o seu cliente pode acessar seu [nome de domínio puppetmaster].

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

tbenz9
fonte
Obrigado, tentei reinventorye, em seguida, clean wrong.host.nameporque também não quero revogar os certificados, mas ainda recebo o erro do número de série.
Louis
Boa captura do --all. Acabei de adicionar uma atualização que vale a pena tentar.
tbenz9
Grande, depois de fazer puppet cert sign wrong.host.nameusando cleanobras. Parece errado que eu tenha que assinar primeiro.
Louis
1
Além disso, não se esqueça de reiniciar o serviço mestre de marionetes depois de limpar qualquer certificado.
22815 Robert Fey #
1
Para sua informação, a outra resposta é muito melhor que essa. Se você seguir o conselho dos OPs, executará comandos que não funcionam (como o comando clean) ou assinará certificados que considera ruins. Se você seguir os conselhos abaixo e simplesmente usar puppet ca destroy wrong.host.name, não precisará introduzir riscos de segurança à sua infraestrutura.
Tedivm
2

Aqui está como eu fiz

[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 

adicionou a linha abaixo ao inventário.txt:

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

então corra

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