Il certificato dell'agente burattino verifica l'errore


10

Ho configurato un Puppet Master / Agent e ho firmato con successo il certificato per l'agente sul master. Tuttavia, quando corro puppet agent --testottengo un errore simile al seguente:

Warning: Unable to fetch my node definition, but the agent run will continue:  
Warning: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [certificate signature failure for /CN=hostname.domain.com]  
Info: Retrieving plugin  
Error: /File[/var/lib/puppet/lib]: Failed to generate additional resources using 'eval_generate: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [certificate signature failure for /CN=hostname.domain.com]  
Error: /File[/var/lib/puppet/lib]: Could not evaluate: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [certificate signature failure for /CN=hostname.domain.com] Could not retrieve file metadata for puppet://hostname.domain.com/plugins: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [certificate signature failure for /CN=hostname.domain.com]  
Error: Could not retrieve catalog from remote server: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [certificate signature failure for /CN=hostname.domain.com]  
Warning: Not using cache on failed catalog   
Error: Could not retrieve catalog; skipping run  
Error: Could not send report: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [certificate signature failure for /CN=hostname.domain.com]  

il hostname.domain.comè il maestro

Come posso risolvere questo problema? Mi sono assicurato che entrambi gli orologi si trovassero all'ora corretta nello stesso fuso orario, ho cancellato tutto nella /var/lib/puppet/ssldirectory dell'agente e mi sono dimesso, non so cos'altro fare.


Il tuo padrone sembra utilizzare un certificato diverso da quello del tuo cliente? Il certificato del master è cambiato?
Shane Madden,

@ShaneMadden Non credo ... dovrei pulire e revocare i certificati dei master e dei clienti? Non ho mai incasinato i certificati dei maestri, ma ecco come appare l'output di "elenco di marionette cert - tutti": + "masterhost.domain.com" (SHA1) E1: F7: 6A: 21: CB: CD: xx: xx: xx: xx ... + "agenthost.domain.com" (SHA256) 5A: D9: 7B: 96: 0B: FF: E4: 87: 58: AF: 00: xx: xx: xx : xx ..
John Smith,

E questo masterhost.domain.comè lo stesso hostname.domain.comdella tua domanda, giusto? Proviamo questo, vedremo se i certificati si verificano manualmente; esegui openssl s_client -connect masterhost.domain.com:8140 -showcertse copia i dati del certificato (inizia con -----BEGIN CERTIFICATE-----, includi quella riga e la riga del certificato finale) in un nuovo file, quindi esegui openssl verify -CAfile /var/lib/puppet/ssl/certs/ca.pem /path/to/file/from/last/commande verifica se verifica.
Shane Madden,

@ShaneMadden Sembra che qualcosa non vada .... Quando ho eseguito il comando "-showcerts", mi ha dato due certificati "inizio" e "fine", quindi ho provato prima ad aggiungerne uno a un nuovo file, e ho ottenuto questo: / var / lib / puppet / ssl / ca / ​​test: /CN=masterhost.domain.com errore 7 a 0 ricerca approfondita: errore firma certificato 22297: errore: 0407006A: routine rsa: RSA_padding_check_PKCS1_type_1: il tipo di blocco non è 01: rsa_pk1.c: 100: 22297: errore: 04.067.072: routine di RSA: RSA_EAY_PUBLIC_DECRYPT: controllo imbottitura non riuscita: rsa_eay.c: 697: 22297: errore: 0D0C5006: ASN1 codifica routine: ASN1_item_verify: EVP lib: a_verify.c: 173:
John Smith,

È strano. Sembra che stia inviando il certificato radice oltre al certificato del server nella connessione, quindi forse basta confrontare il contenuto del secondo certificato -showcertscon il contenuto di /var/lib/puppet/ssl/certs/ca.pem- dovrebbero essere identici?
Shane Madden,

Risposte:


13

Ricreare l'intera configurazione del certificato client. Ciò ha sempre risolto eventuali problemi di certificazione che abbiamo riscontrato in passato. Le seguenti istruzioni presuppongono che il nome host dell'agente sia agenthost.hostname.com

Sul client, eliminare tutti i certificati memorizzati, inclusa la CA:

find /var/lib/puppet/ssl -name '*.pem' -delete

Sul master, eliminare eventuali CSR in sospeso o certificati client precedenti per questo client:

find /var/lib/puppet/ssl -name agenthost.domain.com.pem -delete

Quindi, sul client, riconnettersi al master e inviare un CSR:

puppet agent -t --waitforcert=60

e quando è in attesa (se non è stata impostata la firma automatica abilitata), sul master approvare il CSR in modo che un nuovo certificato client venga rispedito:

puppet cert sign agenthost.domain.com

Ciò dovrebbe consentire all'agente di scaricare nuovamente i certificati CA delle marionette e applicare nuovamente il proprio certificato.

In passato abbiamo dovuto utilizzare questa procedura quando abbiamo cambiato i server delle marionette e i certificati CA o quando abbiamo ricostruito un host con lo stesso nome host.

Assicurati che il tuo agente conosca il suo vero nome host completo; usa il comando 'hostname' per assicurarti che sia quello che ti aspetti che sia.


3
Su Master, puppet cert clean ‘agentName’lavora per me. RHEL Puppet Enterprise SSL posizione: /etc/puppetlabs/puppet/ssl. E ho sincronizzato il tempo tra Master e Agent.
Ivan Chau,

Puppet Enterprise e il più recente Puppet 4, memorizzano i loro certificati in / etc / puppetlabs / puppet / ssl, come menzionato sopra. La posizione / var / lib / puppet / ssl è per le edizioni della comunità Puppet 2.xe 3.x.
Steve Shipway,

6

Ho un problema simile. Ho creato un ambiente vagabondo con un burattinaio e diversi clienti. Il problema è quando distruggo e creo il burattinaio, i clienti rilevano il nuovo burattinaio come impostore.

L'eliminazione /etc/puppet/sslsul client risolve il problema.

Ricorda che la tua configurazione ssl verrà memorizzata nella cache, quindi è necessario riavviare il burattinaio , se decidi di eliminare anche il tuo /etc/puppet/sslhost:

sudo /etc/init.d/puppetmaster restart

service puppetserver restartriparato per me
spuder
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.