【问题标题】:Certificate Verify Failed [unable to get local issuer certificate for CN=puppetmaster.example.com]证书验证失败 [无法获取 CN=puppetmaster.example.com 的本地颁发者证书]
【发布时间】:2020-08-06 19:18:45
【问题描述】:

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

puppet agent --test --verbose

提示如下错误

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

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

【问题讨论】:

    标签: puppet configurationmanager puppet-enterprise


    【解决方案1】:

    要添加到@shubham-singh 答案,在某些系统上,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
    

    【讨论】:

      【解决方案2】:

      我在这个问题上绕了一圈——我使用的是标准的 Ubuntu 存储库,刚刚在我的客户端机器上安装了 puppet.... 我的 docker puppetmaster 运行的是 6.14,但我从标准 Ubuntu 世界中提取的代理是第 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
      

      我看到的任何 puppet 证书类型错误的所有答案都只是说重新生成您的证书,我找不到任何可以提供进一步帮助的东西。

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

      【讨论】:

      • 不是我的反对意见,但我不明白这是如何解决这个问题的。 Puppet 6 master 可以为 Puppet 5 代理服务,并且 OP 报告的错误消息无论如何并不表示 master 和 agent 版本不兼容。如果您遇到类似于 OP 的问题,并且您描述的过程已修复它,那么我的结论是执行包更新的效果操作与 OP 的自我回答中描述的操作基本相同。
      【解决方案3】:

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

      rm -rf /etc/puppetlabs/puppet/ssl/
      puppet agent --test --verbose
      

      您可以使用命令检查您的日志

      journalctl -u puppet
      

      【讨论】:

        猜你喜欢
        • 2019-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多