证书验证失败[无法获取CN=puppetmaster.example.com的本地颁发者证书]

证书验证失败[无法获取CN=puppetmaster.example.com的本地颁发者证书],puppet,configurationmanager,puppet-enterprise,Puppet,Configurationmanager,Puppet Enterprise,尝试从puppet agent节点运行以下命令时: puppet agent --test --verbose 出现以下错误提示 错误:证书验证失败[无法获取CN=puppetmaster.example.com的本地颁发者证书] 我已经在/etc/hosts文件中将FQDN添加到我的主机。我删除了puppet目录中的SSL文件夹,之后一切正常 rm -rf /etc/puppetlabs/puppet/ssl/ puppet agent --test --verbose 您可以使用命令检查

尝试从puppet agent节点运行以下命令时:

puppet agent --test --verbose
出现以下错误提示

错误:证书验证失败[无法获取CN=puppetmaster.example.com的本地颁发者证书]


我已经在/etc/hosts文件中将FQDN添加到我的主机。

我删除了puppet目录中的SSL文件夹,之后一切正常

rm -rf /etc/puppetlabs/puppet/ssl/
puppet agent --test --verbose
您可以使用命令检查日志

journalctl -u puppet

我在这个问题上绕了一圈——我使用的是标准的Ubuntu repo,只是在我的客户机上安装了puppet。。。。 我的docker puppetmaster运行的是6.14,但我从标准Ubuntu world中提取的代理是版本5。我相信您会知道,下面的命令将向您的回购协议中添加puppetlabs,然后安装最新的版本6代理

wget https://apt.puppetlabs.com/puppet6-release-bionic.deb
sudo dpkg -i puppet6-release-bionic.deb
sudo apt update
sudo apt install puppet-agent
我看到的所有关于伪证书类型错误的答案只是说重新生成您的证书,我找不到任何进一步的帮助


我建议在我的经验之后检查您的服务器和客户端版本是否匹配

要添加到@shubham singh answer,在某些系统上,ssl目录可能不在
/etc/puppetlabs/puppet/

您可以运行:

sudo find / -name puppet.conf
要查找
puppet.conf
文件并在
puppet.conf
中查找
ssldir
属性的值,然后删除/重命名ssl目录并重新运行:

puppet agent --test
重新运行可能会导致错误,并要求在服务器和代理上运行其他命令以清除证书

按照以下命令操作,然后重新运行:

puppet agent --test
现在应该可以了

编辑: 如果您仍然有问题,可能是由于服务器和代理上的puppet版本不同。在master和agent上使用下面的命令检查puppet版本,并确保版本匹配

puppet --version

不是我的反对票,但我看不出这如何解决这个问题。Puppet 6主机可以为Puppet 5代理提供服务,OP报告的错误消息无论如何并不表示主机和代理版本不兼容。如果您有一个类似于OP的问题,并且您描述的过程修复了它,那么我的结论是执行包更新的效果操作基本上与OP的自我回答中描述的效果操作相同。