虚拟机中的 Puppet Master 带有端口转发(SSL 证书错误?)

虚拟机中的 Puppet Master 带有端口转发(SSL 证书错误?)

我正在尝试在虚拟机上运行 Puppet Master,并通过虚拟机主机上的端口转发从客户端机器进行连接。

细节

我有一个运行着 Ubunto 和 Puppet 3.1.1 的虚拟机(称为管理虚拟机的主机(称为洛基) 运行 rinetd,将端口 8140 上的传入连接转发到虚拟机。

我有一台客户端机器(称为雷神) 与 Puppet 3.0.2。

使用 netcat 和 telnet 进行测试确认端口转发有效,并且我可以从客户端计算机进行连接(雷神)到 Puppet Master 虚拟机(管理)。

当我运行木偶大师(在管理) 使用以下命令似乎可以正确启动:

puppet master --no-daemonize --debug

当我运行代理时(在雷神),使用以下命令:

puppet agent --server loki --test --no-daemonize

我收到以下错误:

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: [self signed certificate in certificate chain for /CN=Puppet CA: localhost]
Info: Retrieving plugin
Error: /File[/var/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: [self signed certificate in certificate chain for /CN=Puppet CA: localhost]
Error: /File[/var/puppet/lib]: Could not evaluate: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [self signed certificate in certificate chain for /CN=Puppet CA: localhost] Could not retrieve file metadata for puppet://loki/plugins: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [self signed certificate in certificate chain for /CN=Puppet CA: localhost]
Error: Could not retrieve catalog from remote server: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [self signed certificate in certificate chain for /CN=Puppet CA: localhost]
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: [self signed certificate in certificate chain for /CN=Puppet CA: localhost]

但是我没有得到关于傀儡大师的额外输出,表明连接已被尝试或被拒绝。

我的理解是,Puppet Master 应该拒绝连接,直到客户端的证书被签名。使用命令木偶表演列表没有列出任何未签名的证书。

关于如何进行有什么建议吗?

答案1

抱歉,我误读了你原来的错误,看来船长/代理人搞混了,看看此链接了解详情。

具体来说:

puppet 拥有的服务器证书与 puppetmaster 使用的证书不同。在纯 puppet 节点上,一种简单的方法是删除当前的 SSL 信息并重新启动:

查找/var/lib/puppet -type f -print0 |xargs -0r rm

还要确保客户端和服务器同意当前时间(否则创建的证书可能在另一台机器上无效)。

答案2

以下链接很好地解释了 Puppet 证书的工作原理:

相关内容