Auf dem Puppet Master: Sollten die CSRs nicht mehr vorliegen, diese auf Basis der bisherigen Zertifikate neu erstellen und die alten Zertifikate umbenennen:

root@puppetmaster.example.net:/var/lib/puppet/ssl# openssl x509 -x509toreq -in ca/ca_crt.pem -signkey ca/ca_key.pem -out ca/ca_csr.pem

root@puppetmaster.example.net:/var/lib/puppet/ssl# openssl x509 -x509toreq -in certs/puppetmaster.example.net.pem -signkey private_keys/puppetmaster.example.net.pem -out certificate_requests/puppetmaster.example.net_csr.pem

root@puppetmaster.example.net:/var/lib/puppet/ssl# mv ca/ca_crt.pem ca/ca_crt.pem_old

root@puppetmaster.example.net:/var/lib/puppet/ssl# mv certs/puppetmaster.example.net.pem certs/puppetmaster.example.net.pem_old

Neue Zertifikate erstellen:

cat > extension.cnf <<_EOT_
[CA_extensions]
basicConstraints = critical,CA:TRUE
nsComment = "Puppet Ruby/OpenSSL Internal Certificate"
keyUsage = critical,keyCertSign,cRLSign
subjectKeyIdentifier = hash
_EOT_
root@puppetmaster.example.net:/var/lib/puppet/ssl# openssl x509 -req -days 3650 -in ca/ca_csr.pem -signkey ca/ca_key.pem -out ca/ca_crt.pem -extfile extension.cnf -extensions CA_extensions

root@puppetmaster.example.net:/var/lib/puppet/ssl# openssl x509 -req -days 3650 -in certificate_requests/puppetmaster.example.net_csr.pem -CA ca/ca_crt.pem -CAkey ca/ca_key.pem -CAserial ca/serial -out certs/puppetmaster.example.net.pem

Je Puppet Agent auf dem Server:

puppet ca destroy puppetclient.example.net

Auf jedem Puppet Client (Agent):

rm -r /var/lib/puppet/ssl && puppet agent --test

Je Puppet Agent auf dem Server:

puppet ca list
puppet ca sign puppetclient.example.net

Getestet mit Version 5.5.10
Quelle