Come creare manualmente CA Puppet e certificati?


13

Mi chiedo come creare manualmente (usando openssl invece del comando puppet ca) creare CA che sarebbe utilizzabile da Puppet? L'obiettivo sarebbe quello di creare script per la creazione di tali CA per distribuirle su più burattinai, invece di creare certificati su di loro tramite il comando burattino cert.

Qualche idea su come farlo? Sono stato in grado di trovare solo qualcosa del genere: https://wiki.mozilla.org/ReleaseEngineering/PuppetAgain/HowTo/Set_up_a_standalone_puppetmaster ma non funziona - dopo aver creato CA e client cert e averli applicati a burattinaio, si lamenta con:

Feb 16 09:35:20 test puppet-master[81728]: Could not prepare for execution: The certificate retrieved from the master does not match the agent's private key.
Feb 16 09:35:20 test puppet-master[81728]: Certificate fingerprint: 4F:08:AE:01:B9:14:AC:A4:EA:A7:92:D7:02:E9:34:39:1C:5F:0D:93:A0:85:1C:CF:68:E4:52:B8:25:D1:11:64
Feb 16 09:35:20 test puppet-master[81728]: To fix this, remove the certificate from both the master and the agent and then start a puppet run, which will automatically regenerate a certficate.
Feb 16 09:35:20 test puppet-master[81728]: On the master:
Feb 16 09:35:20 test puppet-master[81728]:   puppet cert clean test
Feb 16 09:35:20 test puppet-master[81728]: On the agent:
Feb 16 09:35:20 test puppet-master[81728]:   rm -f /var/puppet/ssl/certs/test.pem
Feb 16 09:35:20 test puppet-master[81728]:   puppet agent -t


Grazie, ma sfortunatamente, dice solo che è possibile, senza mostrare come. Inoltre, fa riferimento alla versione piuttosto vecchia di Puppet.
SpankMe,

@SpankMe Perché non utilizzarlo puppet cert generate?
Shane Madden

3
@Shane Perché dovrei racchiudere i comandi di sistema negli script con oggetti Popen, convalidare il loro output analizzando il testo ... È molto meno flessibile e 'kosher' rispetto al semplice utilizzo della libreria openssl, e in aggiunta a ciò richiede l'installazione di marionette su un server , dove non dovrebbe essere installato: desidero solo rigenerare la CA dei burattini e i certificati client lì, quindi distribuirli alle macchine appropriate.
SpankMe,

Risposte:


1

L'agente non utilizza il certificato client pregenerato. Ha invece creato un CSR (con una nuova chiave), quindi il master non si fiderà dell'agente.

Assicurarsi che i file trovati in

`puppet agent --configprint ssldir`/{certs,private_keys}/`puppet agent --configprint certname`

sono identici a quelli che hai pregenerato e messo anche sul tuo padrone. (Il master non dovrebbe ricevere una copia della chiave privata dell'agente.)


-1

Non so perché avresti mai bisogno di una sceneggiatura che generi certs? Una volta che il burattino genera il certificato che dovrebbe essere valido fino a quando si dispone del client (agente). A meno che non sia stato rimosso il client e creato un nuovo computer client con lo stesso nome host. Se esegui un pupazzo, si lamenterà dicendo che c'è una mancata corrispondenza della chiave privata. Invece dovresti ripulire il certificato sul server delle marionette ogni volta che non hai bisogno del client (ad esempio, stai reinstallando il sistema operativo o ricreando una macchina virtuale) con puppet cert clean testsu puppetmaster.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.