It is now possible to generate general-purpose ECDSA certificates using our internal puppet CA and then use those for serving HTTPS traffic internally.
All of the following assumes you're operating on our puppet active CA server.
Usage is pretty simple:
puppet-ecdsacert -a SAN1,SAN2,SAN3 CERTNAME
will take care of generating the cert, creating the CSR, submitting it to the puppet CA and signing it.
You can control the output directories with a config file, but by default the private key will be at:
and the public signed cert will be at
Once you've generated those files, you should move the private key to the private puppet repo under /srv/private as a secret, and the public cert inside the main puppet repository with .crt extension.
Use in labs with non-central puppetmasters
If you're using a different puppetmaster in labs, you probably want to do something like this:
echo 'puppetca: deployment-puppetmaster04.deployment-prep.eqiad.wmflabs' > /tmp/ecdsacertconfig puppet-ecdsacert -a "deployment-etcd-01.deployment-prep.eqiad.wmflabs,deployment-etcd-01,etcd.deployment-prep.eqiad.wmflabs" etcd.deployment-prep.eqiad.wmflabs -c /tmp/ecdsacertconfig
This is because otherwise, puppetca will default to 'puppet', which in labs resolves to the central puppetmaster. This will cause the CSR to be sent to the central puppetmaster but the puppet cert sign call at the bottom of puppet-ecdsacert to fail