puppet-certificate - Provide access to the CA for
certificate management.
puppet certificate action [--terminus _TERMINUS] [--extra
HASH] --ca-location LOCATION
This subcommand interacts with a local or remote Puppet
certificate authority. Currently, its behavior is not a full superset of
puppet cert; specifically, it is unable to mimic puppet cert´s
"clean" option, and its "generate" action submits a CSR
rather than creating a signed certificate.
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.
- 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.
- ○
- destroy - Delete a certificate.: SYNOPSIS
- puppet certificate destroy [--terminus _TERMINUS] [--extra HASH]
--ca-location LOCATION host
- DESCRIPTION
- 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-location LOCATION host
- DESCRIPTION
- 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-location LOCATION [--dns-alt-names NAMES] host
- DESCRIPTION
- 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-names NAMES - 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 puppet cert generate. 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.
(puppet cert clean <NAME>) (Note puppet cert clean is
deprecated and will be replaced with puppetserver ca clean 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 puppet agent -t --ca_server <CA HOSTNAME>
to request a new certificate
- ○
- On the CA server: Sign the certificate request, explicitly allowing
alternate names (puppet cert sign --allow-dns-alt-names
<NAME>). (Note puppet cert sign is deprecated and will be
replaced with puppetserver ca sign in Puppet 6.)
- ○
- On the server: Run puppet agent -t --ca_server <CA HOSTNAME>
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 puppet cert list -a, then check the output for
(alt names: ...). 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-location LOCATION
- DESCRIPTION
- 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-location LOCATION
- DESCRIPTION
- 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-location LOCATION [--[no-]allow-dns-alt-names]
host
- DESCRIPTION
- 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.
-
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
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
- ○
- rest
-
Copyright 2011 by Puppet Inc. Apache 2 license; see COPYING