puppet-certificate - Provide access to the CA for certificate management.
Contents
Actions
○ destroy - Delete a certificate.: SYNOPSIS
puppet certificate destroy [--terminus _TERMINUS] [--extra HASH] --ca-locationLOCATIONhostDESCRIPTION
Deletes a certificate. This action currently only works on the local CA.
RETURNS
Nothing.
○ find - Retrieve a certificate.: SYNOPSIS
puppet certificate find [--terminus _TERMINUS] [--extra HASH] --ca-locationLOCATIONhostDESCRIPTION
Retrieve a certificate.
RETURNS
An x509 SSL certificate.
Note that this action has a side effect of caching a copy of the certificate in Puppet's ssldir.
○ generate - Generate a new certificate signing request.: SYNOPSIS
puppet certificate generate [--terminus _TERMINUS] [--extra HASH] --ca-locationLOCATION
[--dns-alt-names NAMES] hostDESCRIPTION
Generates and submits a certificate signing request (CSR) for the specified host. This CSR will then
have to be signed by a user with the proper authorization on the certificate authority.
Puppet agent usually handles CSR submission automatically. This action is primarily useful for
requesting certificates for individual users and external applications.
OPTIONS--dns-alt-namesNAMES - A comma-separated list of alternate DNS names for Puppet Server.
These are extra hostnames (in addition to its certname) that the server is allowed to use when
serving agents. Puppet checks this setting when automatically requesting a certificate for Puppet
agent or Puppet Server, and when manually generating a certificate with puppetcertgenerate. These
can be either IP or DNS, and the type should be specified and followed with a colon. Untyped inputs
will default to DNS.
In order to handle agent requests at a given hostname (like "puppet.example.com"), Puppet Server
needs a certificate that proves it's allowed to use that name; if a server shows a certificate that
doesn't include its hostname, Puppet agents will refuse to trust it. If you use a single hostname for
Puppet traffic but load-balance it to multiple Puppet Servers, each of those servers needs to include
the official hostname in its list of extra names.
Note: The list of alternate names is locked in when the server's certificate is signed. If you need
to change the list later, you can't just change this setting; you also need to:
○ On the server: Stop Puppet Server.
○ On the CA server: Revoke and clean the server's old certificate. (puppetcertclean<NAME>) (Note
puppetcertclean is deprecated and will be replaced with puppetservercaclean in Puppet 6.)
○ On the server: Delete the old certificate (and any old certificate signing requests) from the ssldir
https://puppet.com/docs/puppet/latest/dirs_ssldir.html.
○ On the server: Run puppetagent-t--ca_server<CAHOSTNAME> to request a new certificate
○ On the CA server: Sign the certificate request, explicitly allowing alternate names (puppetcertsign--allow-dns-alt-names<NAME>). (Note puppetcertsign is deprecated and will be replaced with
puppetservercasign in Puppet 6.)
○ On the server: Run puppetagent-t--ca_server<CAHOSTNAME> to retrieve the cert.
○ On the server: Start Puppet Server again.
To see all the alternate names your servers are using, log into your CA server and run puppetcertlist-a, then check the output for (altnames:...). Most agent nodes should NOT have alternate names; the
only certs that should have them are Puppet Server nodes that you want other agents to trust.
RETURNS
Nothing.
○ info - Print the default terminus class for this face.: SYNOPSIS
puppet certificate info [--terminus _TERMINUS] [--extra HASH] --ca-locationLOCATIONDESCRIPTION
Prints the default terminus class for this subcommand. Note that different run modes may have
different default termini; when in doubt, specify the run mode with the '--run_mode' option.
○ list - List all certificate signing requests.: SYNOPSIS
puppet certificate list [--terminus _TERMINUS] [--extra HASH] --ca-locationLOCATIONDESCRIPTION
List all certificate signing requests.
RETURNS
An array of #inspect output from CSR objects. This output is currently messy, but does contain the
names of nodes requesting certificates. This action returns #inspect strings even when used from the
Ruby API.
○ sign - Sign a certificate signing request for HOST.: SYNOPSIS
puppet certificate sign [--terminus _TERMINUS] [--extra HASH] --ca-locationLOCATION
[--[no-]allow-dns-alt-names] hostDESCRIPTION
Sign a certificate signing request for HOST.
OPTIONS--[no-]allow-dns-alt-names - Whether or not to accept DNS alt names in the certificate
request
RETURNS
A string that appears to be (but isn't) an x509 certificate.
Copyright And License
Copyright 2011 by Puppet Inc. Apache 2 license; see COPYING
Puppet, Inc. May 2022 PUPPET-CERTIFICATE(8)
Description
This subcommand interacts with a local or remote Puppet certificate authority. Currently, its behavior is
not a full superset of puppetcert; specifically, it is unable to mimic puppet cert's "clean" option, and
its "generate" action submits a CSR rather than creating a signed certificate.
Examples
generate
Request a certificate for "somenode" from the site's CA:
$ puppet certificate generate somenode.puppetlabs.lan --ca-location remote
sign
Sign somenode.puppetlabs.lan's certificate:
$ puppet certificate sign somenode.puppetlabs.lan --ca-location remote
Name
puppet-certificate - Provide access to the CA for certificate management.
Notes
This subcommand is an indirector face, which exposes find, search, save, and destroy actions for an
indirected subsystem of Puppet. Valid termini for this face include:
○ ca
○ disabled_ca
○ file
○ restOptions
Note that any setting that's valid in the configuration file is also a valid long argument, although it
may or may not be relevant to the present action. For example, server and run_mode are valid settings, so
you can specify --server<servername>, or --run_mode<runmode> as an argument.
See the configuration file documentation at https://puppet.com/docs/puppet/latest/configuration.html for
the full list of acceptable parameters. A commented list of all configuration options can also be
generated by running puppet with --genconfig.
--render-as FORMAT
The format in which to render output. The most common formats are json, s (string), yaml, and
console, but other options such as dot are sometimes available.
--verbose
Whether to log verbosely.
--debug
Whether to log debug information.
--ca-location LOCATION
Whether to act on the local certificate authority or one provided by a remote puppet master.
Allowed values are 'local' and 'remote.'
This option is required.
--extra HASH
A terminus can take additional arguments to refine the operation, which are passed as an arbitrary
hash to the back-end. Anything passed as the extra value is just send direct to the back-end.
--terminus _TERMINUS
Indirector faces expose indirected subsystems of Puppet. These subsystems are each able to
retrieve and alter a specific type of data (with the familiar actions of find, search, save, and
destroy) from an arbitrary number of pluggable backends. In Puppet parlance, these backends are
called terminuses.
Almost all indirected subsystems have a rest terminus that interacts with the puppet master's
data. Most of them have additional terminuses for various local data models, which are in turn
used by the indirected subsystem on the puppet master whenever it receives a remote request.
The terminus for an action is often determined by context, but occasionally needs to be set
explicitly. See the "Notes" section of this face's manpage for more details.
Synopsis
puppet certificate action [--terminus _TERMINUS] [--extra HASH] --ca-locationLOCATION