
Security News
Nx npm Packages Compromised in Supply Chain Attack Weaponizing AI CLI Tools
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.
Tooling to make puppet autosigning easy, secure, and extensible
This tool provides a CLI for performing puppet policy-based autosigning using JWT tokens. Read more at https://danieldreier.github.io/autosign.
gem install autosign
autosign config setup
autosign generate foo.example.com
The output will look something like
Autosign token for: foo.example.com, valid until: 2015-07-16 16:25:50 -0700
To use the token, put the following in ${puppet_confdir}/csr_attributes.yaml prior to running puppet agent for the first time:
custom_attributes:
challengePassword: "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJkYXRhIjoie1wiY2VydG5hbWVcIjpcImZvby5leGFtcGxlLmNvbVwiLFwicmVxdWVzdGVyXCI6XCJEYW5pZWxzLU1hY0Jvb2stUHJvLTIubG9jYWxcIixcInJldXNhYmxlXCI6ZmFsc2UsXCJ2YWxpZGZvclwiOjcyMDAsXCJ1dWlkXCI6XCJkM2YyNzI0OC1jZDFmLTRhZmItYjI0MC02ZjBjMDU4NWJiZDNcIn0iLCJleHAiOiIxNDM3MDg5MTUwIn0.lC-EzWaV2dL81aLL7P-9mGwNbiOQDJWcoYjuSHVOqmaLtc7Wis5OZvHFOLln2Fn9qv98oSTnZsIkjmFpbI5dvA"
The resulting output can be copied to /etc/puppet/csr_attributes.yaml
on an agent machine prior to running puppet for the first time to add the token to the CSR as the challengePassword
OID. (just copy-paste from one terminal to another to copy the text)
Run through the previous quick start steps to get the gem installed, then configure puppet to use the autosign-validator
executable as the policy autosign command:
Note that these settings will be slightly different if you're running Puppet Enterprise, because you'll need to use the pe-puppet
user instead of puppet
.
mkdir /var/autosign
chown puppet:puppet /var/autosign
chmod 750 /var/autosign
touch /var/log/autosign.log
chown puppet:puppet /var/log/autosign.log
puppet config set autosign $(which autosign-validator) --section master
Your master is now configured to autosign using the autosign gem.
If you already had an autosign script you want to continue using, add a setting to your autosign.conf
like:
multiplexer:
external_policy_executable: "/path/to/autosign/executable"
The master will validate the certificate if either the token validator or the external validator succeeds.
If the autosign script was just validating simple strings, you can use the password_list
validator instead. For example, to configure the master to sign any CSR that includes the challenge passwords of "hunter2" or "CPE1704TKS" you would add:
password_list:
password: "hunter2"
password: "CPE1704TKS"
Note that this is a relatively insecure way to do certificate autosigning. Using one-time tokens via the autosign generate
command is more secure. This functionality is provided to grandfather in existing use cases to ease the transition.
By default the validation runs the following validators in order:
The first validator to succeed wins and short circuits the validaiton process.
You can completely customize the list and how they are ordered via the configuration file. Or even remove some entirely.
---
general:
loglevel: debug
logfile: "/var/log/autosign.log"
validation_order:
- jwt_token
- multiplexer
- password_list
jwt_token:
secret: J7/WjmkC/CJp2K0/8+sktzSgCqQ=
validity: '7200'
journalfile: "/root/var/autosign/autosign.journal"
The validation_order config is an ordered array and since the validators will only match the first validation to succeed the validation script should occur as fast as you want.
Additionally, if you omit any validator that validator will not be used during the validation process. This might be important if you wanted to only use special validators or remove unwanted validator execution.
Please note, the name of the validator which is speficed by the NAME
constant in the validator code must match
the list you specify otherwise it will not be part of the validation process.
NOTE To use this feature you must have deep_merge 1.2.1+ installed which is now a requirement of this gem.
If you're having problems, try the following:
loglevel: "debug"
in /etc/autosign.conf
journalfile
, in /var/autosign/autosign.journal
by default, to see if the one-time token's UUID has already been recorded. It's just YAML, so you can either delete it or remove the offending entry if you actually want to re-use a token.cat the_csr.csr | autosign-validator certname.example.com
Starting with the 1.0.0 release the autosign gem requires ruby 2.4. If you can't upgrade just yet you can continue to use the older 0.1.4 release.
FAQs
Unknown package
We found that autosign demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.
Security News
CISA’s 2025 draft SBOM guidance adds new fields like hashes, licenses, and tool metadata to make software inventories more actionable.
Security News
A clarification on our recent research investigating 60 malicious Ruby gems.