有没有办法可以设置 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 连接,但事实证明这更方便。