Eu tenho um Puppet Master / Agent configurado e assinei com sucesso o certificado para o agente no master. No entanto, quando executo puppet agent --test
, recebo uma falha parecida com esta:
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]
o hostname.domain.com
é o mestre
Como faço para corrigir isso? Verifiquei se os dois relógios estão no horário correto no mesmo fuso horário, apaguei tudo no /var/lib/puppet/ssl
diretório do agente e renunciei, não sei mais o que fazer.
debian
ssl
puppet
puppetmaster
puppet-agent
John Smith
fonte
fonte
masterhost.domain.com
é o mesmo quehostname.domain.com
na sua pergunta, certo? Vamos tentar isso, veremos se os certificados são verificados manualmente; executeopenssl s_client -connect masterhost.domain.com:8140 -showcerts
e copie os dados do certificado (começa com-----BEGIN CERTIFICATE-----
, inclua essa linha e a linha final do certificado) em um novo arquivo, executeopenssl verify -CAfile /var/lib/puppet/ssl/certs/ca.pem /path/to/file/from/last/command
e verifique se ele é verificado.-showcerts
com o conteúdo de/var/lib/puppet/ssl/certs/ca.pem
- eles devem ser idênticos?Respostas:
Recrie toda a instalação do certificado do cliente. Isso sempre corrigia os problemas de certificação que tivemos no passado. A instrução a seguir assume que o nome do host do seu agente é agenthost.hostname.com
No cliente, exclua todos os certificados armazenados, incluindo a CA:
No mestre, exclua quaisquer CSRs pendentes ou certificados de cliente antigos para este cliente:
Em seguida, no cliente, reconecte-se ao mestre e envie um CSR:
e quando estiver aguardando (se você não tiver definido a assinatura automática ativada), o mestre aprovará o CSR para que um novo certificado de cliente seja enviado de volta:
Isso deve fazer com que o agente faça novamente o download dos certificados da CA fantoche e solicite novamente seu próprio certificado.
Tivemos que usar esse procedimento no passado quando alteramos os servidores fantoches e os certificados da CA foram alterados ou quando reconstruímos um host com o mesmo nome de host.
Verifique se o seu agente sabe seu nome completo do host totalmente qualificado; use o comando 'hostname' para garantir que é o que você espera que seja.
fonte
puppet cert clean ‘agentName’
funciona para mim. RHEL Puppet Empresa SSL local:/etc/puppetlabs/puppet/ssl
. E sincronizei o tempo entre o mestre e o agente.Eu tenho um problema similar. Eu montei um ambiente vagante com um mestre de marionetes e vários clientes. O problema é que, quando eu destruo e crio o puppetmaster, os clientes detectam o novo puppetmaster como um impostor.
Excluir
/etc/puppet/ssl
no cliente resolve o problema.Lembre-se de que sua configuração ssl será armazenada em cache, portanto, é necessária uma reinicialização do mestre de marionetes , se você decidir excluir também o seu
/etc/puppet/ssl
nesse host:fonte
service puppetserver restart