Puppet 服务器主机名与证书不匹配 - 无法进行身份验证。如何禁用傀儡身份验证?

Spa*_*art 2 ssl authentication puppet puppetmaster

我在让 puppet 代理对 master 进行身份验证时遇到问题。

在代理上,我首先做了 sudo puppet agent --test

info: Creating a new SSL key for m-agent-2
info: Caching certificate for ca
info: Creating a new SSL certificate request for m-agent-2
info: Certificate Request fingerprint (md5): 43:30:57:53:5B:20:F7:12:CD:94:59:17:12:28:68:A4
Run Code Online (Sandbox Code Playgroud)

然后在主人sudo puppet cert list身上我做了并得到了

"m-agent-2" (43:30:57:53:5B:20:F7:12:CD:94:59:17:12:28:68:A4)
Run Code Online (Sandbox Code Playgroud)

然后我做了sudo puppet cert sign m-agent-2,它返回了

notice: Signed certificate request for m-agent-2
notice: Removing file Puppet::SSL::CertificateRequest m-agent-2 at                 
'/var/lib/puppet/ssl/ca/requests/m-agent-2.pem'
Run Code Online (Sandbox Code Playgroud)

然后我做了sudo puppet agent --test,它返回了

info: Caching certificate for m-agent-2
err: Could not retrieve catalog from remote server: Server hostname 'puppet' did not match server certificate; expected master-node-1
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run
err: Could not send report: Server hostname 'puppet' did not match server certificate; expected master-node-1
Run Code Online (Sandbox Code Playgroud)

conf 文件certname = master-node-1[main][master]部分中都包含该行。我通过执行重新生成了硕士证书

sudo find $(puppet master --configprint ssldir) -name "$(puppet master --configprint certname).pem" -delete   
sudo puppet master --no-daemonize --verbose
Run Code Online (Sandbox Code Playgroud)

此外,我的 /etc/hosts 文件包含这些行10.20.32.10 learn.localdomain learn puppet.localdomain puppet,我可以从代理 ping puppet 和 puppet.learn。

但是我仍然遇到同样的问题。有没有办法解决这个问题。或者一起禁用 puppet 中的身份验证。主节点和从节点都运行 Ubuntu 12.04,而我运行的是 puppet 2.7.11。任何帮助是极大的赞赏。

Sha*_*den 9

您的客户希望 master 拥有 hostname puppet,根据其server配置puppet.conf- 这是默认设置,因此如果您没有server配置,那么它正在使用puppet. master 的 SSL 证书必须对该名称有效,否则客户端将拒绝连接。

通常情况下,master 生成一个对其自己的主机名和puppet主机名有效的证书,通过使用主题替代名称..但是certname在 master 中有一个明确的puppet.conf可能会覆盖这个。通过检查进行验证puppet cert --list master-node-1- 它应该(alt names: "puppet")在证书指纹之后显示类似内容。

通过让您的客户端使用其server配置指向真实主机名,或让服务器的证书对主机名有效来更正此问题puppet

  • 或者只是你在没有 sudo 或 root 的情况下执行 puppet ...... (2认同)