Puppet 代理证书验证失败

Puppet 代理证书验证失败

我已设置 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]  

hostname.domain.com是主人

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

答案1

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

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

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

在主服务器上,删除此客户端的所有待处理的 CSR 或旧客户端证书:

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

然后,在客户端上重新连接到主服务器并发送 CSR:

puppet agent -t --waitforcert=60

当它等待时(如果你没有设置启用自动签名),主服务器将批准 CSR,以便发回新的客户端证书:

puppet cert sign agenthost.domain.com

这应该让代理重新下载 Puppet CA 证书,并重新申请自己的证书。

过去,当我们更改 Puppet 服务器且 CA 证书发生更改时,或者当我们重建具有相同主机名的主机时,我们必须使用此过程。

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

答案2

我遇到了类似的问题。我设置了一个 vagrant 环境,其中包含一个 puppetmaster 和多个客户端。问题是,当我销毁并创建 puppetmaster 时,客户端会将新的 puppetmaster 检测为冒名顶替者。

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

请记住,您的 SSL 配置将被缓存,因此重新启动木偶大师/etc/puppet/ssl如果您决定在该主机上删除您的内容,则需要:

sudo /etc/init.d/puppetmaster restart

相关内容