Puppet 代理证书验证失败

Joh*_*ith 11 ssl debian puppet puppetmaster puppet-agent

我设置了一个 Puppet Master/Agent,并且已经成功地为 master 上的 agent 签署了证书。但是,当我运行时,puppet agent --test我遇到了如下所示的失败:

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]  
Run Code Online (Sandbox Code Playgroud)

hostname.domain.com是主人

我该如何解决?我已经确保两个时钟都在同一时区的正确时间,我已经删除了代理/var/lib/puppet/ssl目录中的所有内容并辞职,我不知道还能做什么。

Ste*_*way 13

重新创建整个客户端证书设置。这始终可以解决我们过去遇到的任何证书问题。以下说明假定您的代理的主机名是 agenthost.hostname.com

在客户端上,删除所有存储的证书,包括 CA:

find /var/lib/puppet/ssl -name '*.pem' -delete
Run Code Online (Sandbox Code Playgroud)

在 master 上,删除此客户端的所有挂起的 CSR 或旧客户端证书:

find /var/lib/puppet/ssl -name agenthost.domain.com.pem -delete
Run Code Online (Sandbox Code Playgroud)

然后,在客户端上,重新连接到 master 并发送 CSR:

puppet agent -t --waitforcert=60
Run Code Online (Sandbox Code Playgroud)

当它在等待时(如果你没有设置自动签名启用)然后在 master 上批准 CSR 以便发回一个新的客户端证书:

puppet cert sign agenthost.domain.com
Run Code Online (Sandbox Code Playgroud)

这应该让agent重新下载puppet CA证书,重新申请自己的证书。

过去,当我们更改 puppet 服务器并更改 CA 证书时,或者当我们使用相同的主机名重建主机时,我们不得不使用此过程。

确保您的代理知道其真正的完全限定主机名;使用“主机名”命令来确保它是您所期望的。

  • 在 Master 上,`puppet cert clean 'agentName'` 对我有用。RHEL Puppet Enterprise ssl 位置:`/etc/puppetlabs/puppet/ssl`。我已经同步了 Master 和 Agent 之间的时间。 (3认同)

adr*_*lzt 7

我有一个类似的问题。我已经与一个傀儡大师和几个客户建立了一个流浪环境。问题是当我销毁并创建 puppetmaster 时,客户将新 puppetmaster 检测为冒名顶替者。

/etc/puppet/ssl在客户端上删除可以解决问题。

请记住,您的 ssl 配置将被缓存,因此如果您决定同时删除该主机上的配置,则需要重新启动puppet master/etc/puppet/ssl

sudo /etc/init.d/puppetmaster restart
Run Code Online (Sandbox Code Playgroud)