Puppet 为多个代理预生成证书

Puppet 为多个代理预生成证书

我有如下要求

  1. 我已经在 master 中为多个代理生成了预生成的证书,名称如下
  2. 我必须将预先生成的证书复制给所有代理。
  3. 所有具有预生成证书的客户端都应该能够从主服务器中提取目录。

请帮助我。

我尝试过,但出现如下错误:错误:无法请求证书:从主服务器检索到的证书与代理的私钥不匹配。证书指纹:

谨致问候,克里希纳。

答案1

您是否搞清楚了?您到底向客户传输了什么?如果您在 master/ca 上预先生成了密钥/证书,则必须将私钥和证书传输给客户。您的问题的措辞方式让我怀疑您只传输了您生成的证书。

答案2

不清楚您采取了哪些步骤。但这是一个可行的示例——对于多 VM vagrant 设置,我使用此代码片段根据主机名安装不同的 puppet 证书:

HOST=`hostname -s`
echo "Hello World from $0 on $HOST. Now installing puppet ssl keys ..."

mkdir -p /var/lib/puppet/ssl/certs /var/lib/puppet/ssl/private_keys /var/lib/puppet/ssl/public_keys
chown puppet:puppet /var/lib/puppet/ssl/certs /var/lib/puppet/ssl/private_keys /var/lib/puppet/ssl/public_keys

if [[ -e "/home/vagrant/files/vagrant_keys/${HOST}.vm.example.org.pem_cert" ]]; then
    cp /home/vagrant/files/vagrant_keys/${HOST}.vm.example.org.pem_cert    /var/lib/puppet/ssl/certs/${HOST}.vm.example.org.pem
    cp /home/vagrant/files/vagrant_keys/${HOST}.vm.example.org.pem_private /var/lib/puppet/ssl/private_keys/${HOST}.vm.example.org.pem
    cp /home/vagrant/files/vagrant_keys/${HOST}.vm.example.org.pem_public  /var/lib/puppet/ssl/public_keys/${HOST}.vm.example.org.pem
else
    echo "no puppet ssl certificate found for ${HOST}.vm.example.org"
    echo "please sign and deploy the new one, generated in /var/lib/puppet/ssl"
fi

相关内容