RSS Amplifier

My Feed Title · Sep 21, 2022

Puppet Manual CSR

0
Sign in to vote or save

mrgecko.org

If you plan on testing puppet autosign scripts, it is useful to generate test certificate signing requests (CSR) to verify that your script works. There is not much information online for this, so I had to go review documentation for extensions and requests. Below is what I have learned.

CSR Configuration File

First, you need to make your CSR config file for OpenSSL. You can use the example below, and setup extensions per puppet's documentation.

[ req ]
default_bits       = 4096
policy             = policy_match
distinguished_name = req_distinguished_name
req_extensions     = v3_req
prompt             = no
attributes         = req_attributes
[ policy_match ]
countryName             = optional
stateOrProvinceName     = optional
organizationName        = optional
organizationalUnitName  = optional
commonName              = supplied
emailAddress            = optional
[ req_distinguished_name ]
commonName = 0842e974-ca99-43b5-94b5-251b1fd33f62
[ v3_req ]
nsComment               = "Puppet Server Internal Certificate"
1.3.6.1.4.1.34380.1.1.1 = ASN1:UTF8String:0842e974-ca99-43b5-94b5-251b1fd33f62
1.3.6.1.4.1.34380.1.1.7 = ASN1:UTF8String:project
basicConstraints        = critical,CA:false
extendedKeyUsage        = serverAuth, clientAuth
keyUsage                = digitalSignature, keyEncipherment
[ req_attributes ]
challengePassword = "ASuperSecretPassword"

Generating the CSR

openssl genrsa -out puppet.key 4096
openssl req -config openssl-csr.conf -new -key puppet.key -out puppet.csr

Testing CSR against script

cat puppet.csr | /etc/puppetlabs/code/environments/production/scripts/autosign.rb; echo $?

Signing a CSR to test certificate renewals

openssl x509 -extfile v3.ext -req -days 15 -in puppet.csr -CA /etc/puppetlabs/puppet/ssl/ca/ca_crt.pem -CAkey /etc/puppetlabs/puppet/ssl/ca/ca_key.pem -CAcreateserial -out puppet.crt -sha256

Read the original on mrgecko.org

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.