Puppet 3.3.1 证书验证失败

Puppet 3.3.1 证书验证失败

我在使用 puppet 3.3.1 (puppet opensource) 在主服务器和从服务器上设置主/节点方案时遇到了麻烦。从服务器位于 Windows 和 SLES 计算机上。主服务器也位于 SLES 计算机上。

问题:我第一次启动代理时,它会创建一个新证书并将其发送给主服务器。在主服务器上,我可以看到证书请求并接受它。当我再次启动代理时,会出现以下消息:

Running Puppet agent on demand ...
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: c
ertificate verify failed: [certificate signature failure for /CN=my-master.com]
Info: Retrieving plugin
Error: /File[C:/Dokumente und Einstellungen/All Users/Anwendungsdaten/PuppetLabs
/puppet/var/lib]: Failed to generate additional resources using 'eval_generate':
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certifica
te verify failed: [certificate signature failure for /CN=my-master.com]
Error: /File[C:/Dokumente und Einstellungen/All Users/Anwendungsdaten/PuppetLabs
/puppet/var/lib]: Could not evaluate: SSL_connect returned=1 errno=0 state=SSLv3
read server certificate B: certificate verify failed: [certificate signature fa
ilure for /CN=my-master.com] Could not retrieve file metadata f
or puppet://my-master.com/plugins: SSL_connect returned=1 errno
=0 state=SSLv3 read server certificate B: certificate verify failed: [certificat
e signature failure for /CN=my-master.com]
Error: Could not retrieve catalog from remote server: SSL_connect returned=1 err
no=0 state=SSLv3 read server certificate B: certificate verify failed: [certific
ate signature failure for /CN=my-master.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 se
rver certificate B: certificate verify failed: [certificate signature failure fo
r /CN=my-master.com]

问题是它本来可以工作,但现在却不行了。我已经尝试了以下步骤来解决这个问题:

  • 同步所有三台服务器上的时钟/日期。
  • 删除了主服务器上 /var/lib/puppet/.puppet/ssl 中的所有内容
  • 删除节点上 /var/lib/puppet/ssl 中的所有内容
  • 重启主服务多次。
  • 两个节点(SLES 和 Windows)上出现相同的错误
  • Puppet 代理证书验证失败没有解决问题

答案1

找到每一方认为是活跃的 CA

  • 在主人身上puppet master --configprint cacert
  • 在代理上puppet agent --configprint cacert

确保代理信任主服务器用于签名的同一 CA。如有疑问,请替换代理上的副本。然后它应该接受新签名的证书。

为了获得清白,你应该只

  1. 删除代理上的所有$(facter fqdn).pem文件$ssldir
  2. puppet cert clean <fqdn>在主人身上

然后,代理应该再颁发另一个 CSR,并且如果其 CA 副本确实同步,则它最终应该接受该证书。

相关内容