logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

puppet-certificate - Provide access to the CA for certificate management.

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.

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:

       ○   cadisabled_cafilerest

Options

       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

See Also