自动接受 Puppet Master 上的所有证书

自动接受 Puppet Master 上的所有证书

有没有办法可以设置 Puppet Master 自动接受来自客户端的所有证书(这样我就不必每次都在 Master 上使用 Puppetca)?

答案1

在主服务器上创建一个文件/etc/puppet/autosign.conf,其中包含您希望自动签名证书的主机的域名。

例子:

www.example.com
*.example.org
*

答案2

echo "*" > /etc/puppet/autosign.conf

或者你可以更安全一点(但不是真的,因为客户端设置了自己的证书名称;想要非法访问你的傀儡大师的人只需要知道要伪造什么名字)通过将其限制在特定的域中:

echo "*.stackexchange.com" > /etc/puppet/autosign.conf

答案3

由于上述原因,我个人并不喜欢自动签署这些证书。

我编写了一个在启动过程中启动的小脚本,其运行以下命令:

echo Configuring local Puppet instance...
/usr/sbin/puppetd --waitforcert 900
sleep 10
echo We will use $HOSTNAME for all future requests...
echo Running server side script..
chvt 1
ssh -q -t $USERNAME@puppetmaster auto_client.sh $HOSTNAME
chvt 6

自动客户端

#! /bin/bash
NEWHOST=$1

sudo puppetca --sign $NEWHOST

if ! ( cat /etc/puppet/manifests/* | grep "$NEWHOST" )
then
    NHFILE=/etc/puppet/manifests/temp.pp
    echo node \'$NEWHOST\' >>  $NHFILE
    echo  { >> $NHFILE
    echo    include linux_base >>  $NHFILE
    echo  } >> newhost.cfg >>  $NHFILE
fi

我认真考虑过使用存储在 USB 上的 SSL 证书进行 SSH 连接,但事实证明这更方便。

相关内容