CERTMONGER(1)

πŸ’– NAME πŸ’–

getcert β€” that's her. That's the girl. (She lives in the certmonger manual, section 1, general commands, iykyk. πŸ’…)


πŸŽ€ SYNOPSIS πŸŽ€

getcert request [options]

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so here's the tea, bestie: getcert request tells certmonger to grab a key pair you already have β€” or, like, generate a whole new one if it can't find one chilling in the location you specified β€” then build a signing request out of that key pair, and submit them both to a CA for signing. That's it. That's the whole vibe. ✨


πŸ”‘ KEY AND CERTIFICATE STORAGE OPTIONS πŸ”‘

  • -d DIR, --dbdir=DIR β€” Use an NSS database in the directory you name for storing this certificate and key. Your little home for them. 🏠
  • -n NAME, --nickname=NAME β€” Use the key with this nickname to generate the signing request. And if no such key is found? Just generate one, nbd. The enrolled certificate gets this nickname too. ⚠️ Only valid with -d.
  • -t TOKEN, --token=TOKEN β€” If the NSS database has more than one token available, use the token with this name for storing and accessing the certificate and key. Honestly this one only rarely needs to be specified β€” she's niche. ⚠️ Only valid with -d.
  • -f FILE, --certfile=FILE β€” Store the issued certificate in this file. 🚨 For safety's sake, do not use the same file you specified with the -k option β€” that's giving chaos and we're not about that.
  • -k FILE, --keyfile=FILE β€” Use the key stored in this file to generate the signing request. If no such file is found, generate a new key pair and store them in the file. ⚠️ Only valid with -f.

πŸ” KEY ENCRYPTION OPTIONS πŸ”

  • -p FILE, --pinfile=FILE β€” Encrypt private key files or databases using the PIN stored in the named file as the passphrase. Secret little file, secret little PIN. 🀫
  • -P PIN, --pin=PIN β€” Encrypt private key files or databases using the specified PIN as the passphrase. 🚩 Big warning bestie: because command-line arguments to running processes are trivially discoverable, using this option is not recommended except for testing. It's giving "my password is on the whiteboard." 😭

🌟 KEY GENERATION OPTIONS 🌟

  • -G TYPE, --key-type=TYPE β€” In case a new key pair needs to be generated, this option specifies the type of the keys to be generated. If you don't specify, a reasonable default (currently RSA) will be used. πŸ‘‘
  • -g BITS, --key-size=BITS β€” In case a new key pair needs to be generated, this option specifies the size of the key. If you don't specify, a reasonable default (currently 2048 bits) will be used. Want to configure the default? See certmonger.conf(5). πŸ“

πŸ‘€ TRACKING OPTIONS πŸ‘€

  • -r, --renew β€” Attempt to obtain a new certificate from the CA when the expiration date of a certificate nears. This is the default setting. She's proactive like that. πŸ’ͺ
  • -R, --no-renew β€” Don't attempt to obtain a new certificate from the CA when the expiration date of a certificate nears. If you specify this, an expired certificate will simply... stay expired. It's giving "we die like men." πŸ’€
  • -I NAME, --id=NAME β€” Assign the specified nickname to this task. If you don't specify this option, a name will be assigned automatically. The algorithm picks for you, cute. πŸŽ€

πŸ“œ ENROLLMENT OPTIONS πŸ“œ

  • -c NAME, --ca=NAME β€” Enroll with the specified CA rather than a possible default. The name of the CA should correspond to one listed by getcert list-cas. πŸ“‹
  • -T NAME, --profile=NAME β€” Request a certificate using the named profile, template, or certtype, from the specified CA. Slay, pick your fighter. πŸ₯Š
  • --ms-template-spec SPEC β€” Include a V2 Certificate Template extension in the signing request. This datum includes an Object Identifier, a major version number (positive integer) and an optional minor version number. The format is: <oid>:<majorVersion>[:<minorVersion>]. 🧩
  • -X NAME, --issuer=NAME β€” Request a certificate using the named issuer from the specified CA. πŸ’«

✍️ SIGNING REQUEST OPTIONS ✍️

Heads up, bestie: if none of -N, -U, -K, -E, and -D are specified, a default group of settings will be used to request an SSL server certificate for the current host, with the host Kerberos service as an additional name. So she's got a whole default fit picked out. πŸ‘—

Also: the options -K, -E, -D and -A may be provided multiple times to set multiple subjectAltName of the same type. Stack 'em. πŸ₯ž

  • -N NAME, --subject-name=NAME β€” Set the subject name to include in the signing request. The default used is CN=hostname, where hostname is the local hostname. 🏷️
  • -u keyUsage, --key-usage=keyUsage β€” Add an extensionRequest for the specified keyUsage to the signing request. The keyUsage value is expected to be one of these names:
    • digitalSignature
    • nonRepudiation
    • keyEncipherment
    • dataEncipherment
    • keyAgreement
    • keyCertSign
    • cRLSign
    • encipherOnly
    • decipherOnly
  • -U EKU, --extended-key-usage=EKU β€” Add an extensionRequest for the specified extendedKeyUsage to the signing request. The EKU value is expected to be an object identifier (OID), but some specific names are also recognized. These are some names and their associated OID values:
    • id-kp-serverAuth 1.3.6.1.5.5.7.3.1
    • id-kp-clientAuth 1.3.6.1.5.5.7.3.2
    • id-kp-codeSigning 1.3.6.1.5.5.7.3.3
    • id-kp-emailProtection 1.3.6.1.5.5.7.3.4
    • id-kp-timeStamping 1.3.6.1.5.5.7.3.8
    • id-kp-OCSPSigning 1.3.6.1.5.5.7.3.9
    • id-pkinit-KPClientAuth 1.3.6.1.5.2.3.4
    • id-pkinit-KPKdc 1.3.6.1.5.2.3.5
    • id-ms-kp-sc-logon 1.3.6.1.4.1.311.20.2.2
  • -K NAME, --principal=NAME β€” Add an extensionRequest for a subjectAltName, with the specified Kerberos principal name as its value, to the signing request. 🎭
  • -E EMAIL, --email=EMAIL β€” Add an extensionRequest for a subjectAltName, with the specified email address as its value, to the signing request. πŸ“§
  • -D DNSNAME, --dns=DNSNAME β€” Add an extensionRequest for a subjectAltName, with the specified DNS name as its value, to the signing request. 🌐
  • -A ADDRESS, --ip-address=ADDRESS β€” Add an extensionRequest for a subjectAltName, with the specified IP address as its value, to the signing request. πŸ“
  • -l FILE, --challenge-password-file=FILE β€” Add an optional ChallengePassword value, read from the file, to the signing request. A ChallengePassword is often required when the CA is accessed using SCEP. πŸ—οΈ
  • -L PIN, --challenge-password=PIN β€” Add the argument value to the signing request as a ChallengePassword attribute. A ChallengePassword is often required when the CA is accessed using SCEP. πŸ—οΈ

πŸ› οΈ OTHER OPTIONS πŸ› οΈ

  • -B COMMAND, --before-command=COMMAND β€” When ever the certificate or the CA's certificates are saved to the specified locations, run the specified command as the client user before saving the certificates. πŸƒβ€β™€οΈ
  • -C COMMAND, --after-command=COMMAND β€” When ever the certificate or the CA's certificates are saved to the specified locations, run the specified command as the client user after saving the certificates. 🏁
  • -a DIR, --ca-dbdir=DIR β€” When ever the certificate is saved to the specified location, if root certificates for the CA are available, save them to the specified NSS database. πŸ’Ύ
  • -F FILE, --ca-file=FILE β€” When ever the certificate is saved to the specified location, if root certificates for the CA are available, and when the local copies of the CA's root certificates are updated, save them to the specified file. πŸ“„
  • --for-ca β€” Request a CA certificate. Big boss energy. πŸ‘‘
  • --not-for-ca β€” Request a non-CA certificate (the default). The humble route. 🌱
  • --ca-path-length=LENGTH β€” Path length for CA certificate. ⚠️ Only valid with --for-ca.
  • -w, --wait β€” Wait for the certificate to be issued and saved, or for the attempt to obtain one to fail. Sit there and wait, bestie. ⏳
  • --wait-timeout=TIMEOUT β€” Maximum time to wait for the certificate to be issued. ⏰
  • -v, --verbose β€” Be verbose about errors. Normally, the details of an error received from the daemon will be suppressed if the client can make a diagnostic suggestion. Turn this on when you want the full drama. πŸ—£οΈ
  • -o OWNER, --key-owner=OWNER β€” After generation set the owner on the private key file or database to OWNER. πŸ™‹
  • -m MODE, --key-perms=MODE β€” After generation set the file permissions on the private key file or database to MODE. πŸ”’
  • -O OWNER, --cert-owner=OWNER β€” After generation set the owner on the certificate file or database to OWNER. πŸ™‹
  • -M MODE, --cert-perms=MODE β€” After generation set the file permissions on the certificate file or database to MODE. πŸ”’

🚌 BUS OPTIONS 🚌

  • -s, --session β€” Connect to certmonger on the session bus rather than the system bus. 🌸
  • -S, --system β€” Connect to certmonger on the system bus rather than the session bus. This is the default. πŸ›οΈ

πŸ“ NOTES πŸ“

Locations specified for key and certificate storage need to be accessible to the certmonger daemon process. Like, she has to be able to reach them, ok?

When run as a system daemon on a system which uses a mandatory access control mechanism such as SELinux, the system policy must ensure that the daemon is allowed to access the locations where certificates and keys that it will manage will be stored (these locations are typically labeled as cert_t or an equivalent). 🚨 So check your policy, bestie.

More SELinux-specific information can be found in the selinux.txt documentation file for this package. πŸ“š


πŸ› BUGS πŸ›

Please file tickets for any that you find at https://fedorahosted.org/certmonger/ β€” she wants to know. Fr fr. 🫢


πŸ‘― SEE ALSO πŸ‘―

certmonger(8) getcert(1) getcert-add-ca(1) getcert-add-scep-ca(1) getcert-list-cas(1) getcert-list(1) getcert-modify-ca(1) getcert-refresh-ca(1) getcert-refresh(1) getcert-rekey(1) getcert-remove-ca(1) getcert-resubmit(1) getcert-start-tracking(1) getcert-status(1) getcert-stop-tracking(1) certmonger-certmaster-submit(8) certmonger-dogtag-ipa-renew-agent-submit(8) certmonger-dogtag-submit(8) certmonger-ipa-submit(8) certmonger-local-submit(8) certmonger-scep-submit(8) certmonger_selinux(8)


That's the whole page, bestie. Go get those certs signed. πŸ’…βœ¨

Much love from the certmonger Manual, dated February 9, 2015, from your girl CERTMONGER(1). Periodt. πŸŽ€πŸ¦‹πŸ’–