我有如下要求
- 我已经在 master 中为多个代理生成了预生成的证书,名称如下
- 我必须将预先生成的证书复制给所有代理。
- 所有具有预生成证书的客户端都应该能够从主服务器中提取目录。
请帮助我。
我尝试过,但出现如下错误:错误:无法请求证书:从主服务器检索到的证书与代理的私钥不匹配。证书指纹:
谨致问候,克里希纳。
答案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