¿Cómo rechazar la solicitud de certificado en Puppet Master?

13

Tengo algunas solicitudes de agentes que tenían malos nombres de host. He corregido esto, pero aún tengo las solicitudes pendientes con los malos nombres de host.

Lo intenté:

$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

¿Cuál es la forma correcta de deshacerse de ellos?

Louis
fuente

Respuestas:

23

El uso cafunciona mejor y puede eliminar un certificado en un solo paso a diferencia cert. Es importante destacar que no te hace firmar temporalmente un certificado no vá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

El puppet cacomando ha quedado obsoleto recientemente, por lo que en algún momento puede desaparecer, pero no hay un comando equivalente. Hay un error archivado, que podría votar si cree que es un poco tonto eliminar este comando sin reemplazo.

Mella
fuente
Esta es la respuesta correcta. Todas las instrucciones dadas por la respuesta aceptada no funcionan o requieren que firme certificados que sabe que son malos.
tedivm
Lo que dijo @tedivm. Por lo tanto: +1.
gf_
Esto funciona, pero se marcó como obsoleto. Alguien sabe cuál es el nuevo método?
Suizo
@Swiss, ¿tienes un enlace a algunos documentos que demuestren que está en desuso?
Nick
1
puppet cert cleanahora funciona para eliminar solicitudes. Ver el informe de error vinculado.
7yl4r
3

Posible solución 1:

Usar el puppet cert cleantitiritero en el titiritero es la forma correcta. Sin embargo, dado que obtiene errores, es posible que tenga un mal inventario de certificados.

Intente hacer un nuevo inventario y luego limpiar:

$ puppet cert reinventory
$ puppet cert clean --all

Nota: mi ejemplo usa la --allbandera, esto borrará todos los certificados, firmados y sin firmar. Además, tenga en cuenta que el Puppet master debe detenerse antes de ejecutar a reinventory.

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

Posible solución 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'

Posible solución 3:

Primero: en el servidor

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

Segundo: en el cliente

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

Tercero: en el servidor (ajuste según sea necesario)

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

Además, verifique que su cliente pueda comunicarse con su [nombre de dominio de puppetmaster].

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

tbenz9
fuente
Gracias, lo intenté reinventoryy luego clean wrong.host.nameporque no quiero revocar los buenos certificados también, pero todavía recibo el error del número de serie.
Louis
Buena captura en el --all. Acabo de agregar una actualización que vale la pena probar.
tbenz9
Genial, después de hacer puppet cert sign wrong.host.nameuso de cleanobras. Parece incorrecto que tenga que firmarlo primero.
Louis
1
Además, no olvide reiniciar el servicio de Puppet Master después de limpiar los certificados.
Robert Fey
1
FYI, la otra respuesta es mucho mejor que esta. Si sigue los consejos de los OP, ejecutará comandos que no funcionan (como el comando de limpieza) o firmará certificados que sepa que son incorrectos. Si sigue los consejos a continuación y simplemente los usa puppet ca destroy wrong.host.name, no tiene que introducir riesgos de seguridad en su infraestructura.
tedivm
2

Así es como lo hice

[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 

agregó la línea a continuación a Inventory.txt:

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

entonces corre

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