<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
<!ENTITY date SYSTEM "date.xml">
<!ENTITY version SYSTEM "version.xml">
]>

<refentry id="certutil">

  <refentryinfo>
    <date>&date;</date>
    <title>NSS Security Tools</title>
    <productname>nss-tools</productname>
    <productnumber>&version;</productnumber>
  </refentryinfo>

  <refmeta>
    <refentrytitle>CERTUTIL</refentrytitle>
    <manvolnum>1</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>certutil</refname>
    <refpurpose>Manage keys and certificate in both NSS databases and other NSS tokens</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <cmdsynopsis>
      <command>certutil</command>
      <arg><replaceable>options</replaceable></arg>
      <arg>[<replaceable>arguments</replaceable>]</arg>
    </cmdsynopsis>
  </refsynopsisdiv>

  <refsection>
    <title>STATUS</title>
    <para>This documentation is still work in progress. Please contribute to the initial review in <ulink url="https://bugzilla.mozilla.org/show_bug.cgi?id=836477">Mozilla NSS bug 836477</ulink>
    </para>
  </refsection>

<refsection id="description">
    <title>Description</title>

    <para>The Certificate Database Tool, <command>certutil</command>, is a command-line utility that can create and modify certificate and key databases. It can specifically list, generate, modify, or delete certificates, create or change the password, generate new public and private key pairs, display the contents of the key database, or delete key pairs within the key database.</para>
    <para>Certificate issuance, part of the key and certificate management process, requires that keys and certificates be created in the key database. This document discusses certificate and key database management. For information on the security module database management, see the <command>modutil</command> manpage.</para>

  </refsection>
  
  <refsection id="options">
    <title>Command Options and Arguments</title>
	<para>Running <command>certutil</command> always requires one and only one command option to specify the type of certificate operation. Each command option may take zero or more arguments. The command option <option>-H</option> will list all the command options and their relevant arguments.</para>
   	<para><command>Command Options</command></para> 
    <variablelist>

      <varlistentry>
        <term>-A </term>
        <listitem><para>Add an existing certificate to a certificate database. The certificate database should already exist; if one is not present, this command option will initialize one by default.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-B</term>
        <listitem><para>Run a series of commands from the specified batch file. This requires the <option>-i</option> argument.</para></listitem>
      </varlistentry>
    
      <varlistentry>
        <term>-C </term>
        <listitem><para>Create a new binary certificate file from a binary certificate request file. Use the <option>-i</option> argument to specify the certificate request file. If this argument is not used, <command>certutil</command> prompts for a filename. </para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-D </term>
        <listitem><para>Delete a certificate from the certificate database.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>--rename </term>
        <listitem><para>Change the database nickname of a certificate.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-E </term>
        <listitem><para>Add an email certificate to the certificate database.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-F</term>
        <listitem><para>Delete a private key and the associated certificate from a database. Specify the key to delete with the -n argument or the -k argument. Specify the database from which to delete the key with the
<option>-d</option> argument.
</para>
<para>
Some smart cards do not let you remove a public key you have generated. In such a case, only the private key is deleted from the key pair.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-G </term>
        <listitem><para>Generate a new public and private key pair within a key database. The key database should already exist; if one is not present, this command option will initialize one by default. Some smart cards can store only one key pair. If you create a new key pair for such a card, the previous pair is overwritten.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-H </term>
        <listitem><para>Display a list of the command options and arguments.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-K </term>
        <listitem><para>List the key ID of keys in the key database. A key ID is the modulus of the RSA key or the publicValue of the DSA key. IDs are displayed in hexadecimal ("0x" is not shown).</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-L </term>
        <listitem><para>List all the certificates, or display information about a named certificate, in a certificate database.
Use the -h tokenname argument to specify the certificate database on a particular hardware or software token.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-M </term>
        <listitem><para>Modify a certificate's trust attributes using the values of the -t argument.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-N</term>
        <listitem><para>Create new certificate and key databases.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-O </term>
        <listitem><para>Print the certificate chain.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-R</term>
        <listitem><para>Create a certificate request file that can be submitted to a Certificate Authority (CA) for processing into a finished certificate. Output defaults to standard out unless you use -o output-file argument.

Use the -a argument to specify ASCII output.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-S </term>
        <listitem><para>Create an individual certificate and add it to a certificate database.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-T </term>
        <listitem><para>Reset the key database or token.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-U </term>
        <listitem><para>List all available modules or print a single named module.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-V </term>
        <listitem><para>Check the validity of a certificate and its attributes.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-W </term>
        <listitem><para>Change the password to a key database.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>--merge</term>
        <listitem><para>Merge two databases into one.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>--upgrade-merge</term>
        <listitem><para>Upgrade an old database and merge it into a new database. This is used to migrate legacy NSS databases (<filename>cert8.db</filename> and <filename>key3.db</filename>) into the newer SQLite databases (<filename>cert9.db</filename> and <filename>key4.db</filename>).</para></listitem>
      </varlistentry>
	</variablelist>

	<para><command>Arguments</command></para>
	<para>Arguments modify a command option and are usually lower case, numbers, or symbols.</para>
	<variablelist>
      <varlistentry>
        <term>-a</term>
        <listitem><para>Use ASCII format or allow the use of ASCII format for input or output. This formatting follows RFC 1113. 
For certificate requests, ASCII output defaults to standard output unless redirected.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-b validity-time</term>
        <listitem><para>Specify a time at which a certificate is required to be valid. Use when checking certificate validity with the <option>-V</option> option. The format of the <emphasis>validity-time</emphasis> argument is <emphasis>YYMMDDHHMMSS[+HHMM|-HHMM|Z]</emphasis>, which allows offsets to be set relative to the validity end time. Specifying seconds (<emphasis>SS</emphasis>) is optional. When specifying an explicit time, use a Z at the end of the term, <emphasis>YYMMDDHHMMSSZ</emphasis>, to close it. When specifying an offset time, use <emphasis>YYMMDDHHMMSS+HHMM</emphasis> or <emphasis>YYMMDDHHMMSS-HHMM</emphasis> for adding or subtracting time, respectively.
</para>
<para>
If this option is not used, the validity check defaults to the current system time.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-c issuer</term>
        <listitem><para>Identify the certificate of the CA from which a new certificate will derive its authenticity. 
 Use the exact nickname or alias of the CA certificate, or use the CA's email address. Bracket the issuer string 
 with quotation marks if it contains spaces. </para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-d [prefix]directory</term>
        <listitem>
          <para>Specify the database directory containing the certificate and key database files.</para>
          <para><command>certutil</command> supports two types of databases: the legacy security databases (<filename>cert8.db</filename>, <filename>key3.db</filename>, and <filename>secmod.db</filename>) and new SQLite databases (<filename>cert9.db</filename>, <filename>key4.db</filename>, and <filename>pkcs11.txt</filename>). </para>
          <para>NSS recognizes the following prefixes:</para>
          <itemizedlist>
            <listitem><para><command>sql:</command> requests the newer database</para></listitem>
	    <listitem><para><command>dbm:</command> requests the legacy database</para></listitem>
          </itemizedlist>
          <para>If no prefix is specified the default type is retrieved from NSS_DEFAULT_DB_TYPE. If NSS_DEFAULT_DB_TYPE is not set then <command>dbm:</command> is the default.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>--dump-ext-val OID </term>
        <listitem><para>For single cert, print binary DER encoding of extension OID.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-e </term>
        <listitem><para>Check a certificate's signature during the process of validating a certificate.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>--email email-address</term>
        <listitem><para>Specify the email address of a certificate to list. Used with the -L command option.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>--extGeneric OID:critical-flag:filename[,OID:critical-flag:filename]... </term>
        <listitem>
          <para>
Add one or multiple extensions that certutil cannot encode yet, by loading their encodings from external files.
           </para>
	<itemizedlist>
	<listitem>
<para>OID (example): 1.2.3.4</para>
	</listitem>
	<listitem>
<para>critical-flag: critical or not-critical</para>
	</listitem>
	<listitem>
<para>filename: full path to a file containing an encoded extension</para>
	</listitem>
	</itemizedlist>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>-f password-file</term>
        <listitem><para>Specify a file that will automatically supply the password to include in a certificate 
 or to access a certificate database. This is a plain-text file containing one password. Be sure to prevent 
 unauthorized access to this file.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-g keysize</term>
        <listitem><para>Set a key size to use when generating new public and private key pairs. The minimum is 512 bits and the maximum is 16384 bits. The default is 2048 bits. Any size between the minimum and maximum is allowed.</para></listitem>
      </varlistentry>


      <varlistentry>
        <term>-h tokenname</term>
        <listitem><para>Specify the name of a token to use or act on. If not specified the default token is the internal database slot.</para>
	<para>The name can also be a PKCS #11 URI. For example, the NSS internal certificate store can be unambiguously specified as "pkcs11:token=NSS%20Certificate%20DB". For details about the format, see RFC 7512.</para></listitem>
      </varlistentry>

     <varlistentry>
        <term>-i input_file</term>
        <listitem><para>Pass an input file to the command. Depending on the command option, an input file can be a specific certificate, a certificate request file, or a batch file of commands.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-k key-type-or-id</term>
        <listitem>
          <para>Specify the type or specific ID of a key.</para>
          <para>
           The valid key type options are rsa, dsa, ec, or all. The default 
           value is rsa. Specifying the type of key can avoid mistakes caused by
           duplicate nicknames. Giving a key type generates a new key pair; 
           giving the ID of an existing key reuses that key pair (which is 
           required to renew certificates).
          </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>-l </term>
        <listitem><para>Display detailed information when validating a certificate with the -V option.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-m serial-number</term>
        <listitem><para>Assign a unique serial number to a certificate being created. This operation should be performed by a CA. If no serial number is provided a default serial number is made from the current time. Serial numbers are limited to integers </para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-n nickname</term>
        <listitem><para>Specify the nickname of a certificate or key to list, create, add to a database, modify, or validate. Bracket the nickname string with quotation marks if it contains spaces.</para>
	<para>The nickname can also be a PKCS #11 URI. For example, if you have a certificate named "my-server-cert" on the internal certificate store, it can be unambiguously specified as "pkcs11:token=NSS%20Certificate%20DB;object=my-server-cert". For details about the format, see RFC 7512.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-o output-file</term>
        <listitem><para>Specify the output file name for new certificates or binary certificate requests. Bracket the output-file string with quotation marks if it contains spaces. If this argument is not used the output destination defaults to standard output.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-P dbPrefix</term>
        <listitem><para>Specify the prefix used on the certificate and key database file. This argument is provided to support legacy servers. Most applications do not use a database prefix.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-p phone</term>
        <listitem><para>Specify a contact telephone number to include in new certificates or certificate requests. Bracket this string with quotation marks if it contains spaces.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-q pqgfile or curve-name</term>
        <listitem>
        <para>Read an alternate PQG value from the specified file when generating DSA key pairs. If this argument is not used, <command>certutil</command> generates its own PQG value. PQG files are created with a separate DSA utility.</para>
        <para>Elliptic curve name is one of the ones from nistp256, nistp384, nistp521, curve25519.</para>
        <para>
           If a token is available that supports more curves, the foolowing curves are supported as well:
           sect163k1, nistk163, sect163r1, sect163r2,
           nistb163,  sect193r1, sect193r2, sect233k1, nistk233,
           sect233r1, nistb233, sect239k1, sect283k1, nistk283,
           sect283r1, nistb283, sect409k1, nistk409, sect409r1,
           nistb409,  sect571k1, nistk571, sect571r1, nistb571,
           secp160k1, secp160r1, secp160r2, secp192k1, secp192r1,
           nistp192,  secp224k1, secp224r1, nistp224, secp256k1,
           secp256r1, secp384r1, secp521r1,
           prime192v1, prime192v2, prime192v3,
           prime239v1, prime239v2, prime239v3, c2pnb163v1,
           c2pnb163v2, c2pnb163v3, c2pnb176v1, c2tnb191v1,
           c2tnb191v2, c2tnb191v3,
           c2pnb208w1, c2tnb239v1, c2tnb239v2, c2tnb239v3,
           c2pnb272w1, c2pnb304w1,
           c2tnb359w1, c2pnb368w1, c2tnb431r1, secp112r1,
           secp112r2, secp128r1, secp128r2, sect113r1, sect113r2,
           sect131r1, sect131r2
        </para>
        </listitem>
        
      </varlistentry>

      <varlistentry>
        <term>-r </term>
        <listitem><para>Display a certificate's binary DER encoding when listing information about that certificate with the -L option.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-s subject</term>
        <listitem><para>Identify a particular certificate owner for new certificates or certificate requests. Bracket this string with quotation marks if it contains spaces. The subject identification format follows RFC #1485.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-t trustargs</term>
        <listitem><para>Specify the trust attributes to modify in an existing certificate or to apply to a certificate when creating it or adding it to a database. There are three available trust categories for each certificate, expressed in the order <emphasis>SSL, email, object signing</emphasis> for each trust setting. In each category position, use none, any, or all
of the attribute codes: 
	</para>
	<itemizedlist>
	<listitem>
	<para>
		<command>p</command> - Valid peer
	</para>
	</listitem>
	<listitem>
	<para>
		<command>P</command> - Trusted peer (implies p)
	</para>
	</listitem>
	<listitem>
	<para>
		<command>c</command> - Valid CA
	</para>
	</listitem>
	<listitem>
	<para>
		<command>C</command> - Trusted CA (implies c)
	</para>
	</listitem>
	<listitem>
	<para>
		<command>T</command> - trusted CA for client authentication (ssl server only)
	</para>
	</listitem>
	</itemizedlist>
	<para>
		The attribute codes for the categories are separated by commas, and the entire set of attributes enclosed by quotation marks. For example:
	</para>
<para><command>-t "TC,C,T"</command></para>
	<para>
	Use the -L option to see a list of the current certificates and trust attributes in a certificate database. </para>
	<para>
	Note that the output of the -L option may include "u" flag, which means that there is a private key associated with the certificate. It is a dynamic flag and you cannot set it with certutil. </para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-u certusage</term>
        <listitem><para>Specify a usage context to apply when validating a certificate with the -V option.</para><para>The contexts are the following:</para>
	<itemizedlist>
	<listitem>
<para><command>C</command> (as an SSL client)</para>
	</listitem>
	<listitem>
<para><command>V</command> (as an SSL server)</para>
	</listitem>
	<listitem>
<para><command>L</command> (as an SSL CA)</para>
	</listitem>
	<listitem>
<para><command>A</command> (as Any CA)</para>
	</listitem>
	<listitem>
<para><command>Y</command> (Verify CA)</para>
	</listitem>
	<listitem>
<para><command>S</command> (as an email signer)</para>
	</listitem>
	<listitem>
<para><command>R</command> (as an email recipient)</para>
	</listitem>
	<listitem>
<para><command>O</command> (as an OCSP status responder)</para>
	</listitem>
	<listitem>
<para><command>J</command> (as an object signer)</para>
	</listitem>
	</itemizedlist></listitem>
      </varlistentry>

      <varlistentry>
        <term>-v valid-months</term>
        <listitem><para>Set the number of months a new certificate will be valid. The validity period begins at the current system time unless an offset is added or subtracted with the <option>-w</option> option. If this argument is not used, the default validity period is three months. </para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-w offset-months</term>
        <listitem><para>Set an offset from the current system time, in months, 
 for the beginning of a certificate's validity period. Use when creating 
 the certificate or adding it to a database. Express the offset in integers, 
 using a minus sign (-) to indicate a negative offset. If this argument is 
 not used, the validity period begins at the current system time. The length 
 of the validity period is set with the -v argument. </para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-X </term>
        <listitem><para>Force the key and certificate database to open in read-write mode. This is used with the <option>-U</option> and <option>-L</option> command options.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-x </term>
        <listitem><para>Use <command>certutil</command> to generate the signature for a certificate being created or added to a database, rather than obtaining a signature from a separate CA.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-y exp</term>
        <listitem><para>Set an alternate exponent value to use in generating a new RSA public key for the database, instead of the default value of 65537. The available alternate values are 3 and 17.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>--pss</term>
        <listitem><para>Restrict the generated certificate (with the <option>-S</option> option) or certificate request (with the <option>-R</option> option) to be used with the RSA-PSS signature scheme. This only works when the private key of the certificate or certificate request is RSA.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>--pss-sign</term>
        <listitem><para>Sign the generated certificate with the RSA-PSS signature scheme (with the <option>-C</option> or <option>-S</option> option). This only works when the private key of the signer's certificate is RSA. If the signer's certificate is restricted to RSA-PSS, it is not necessary to specify this option.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-z noise-file</term>
        <listitem><para>Read a seed value from the specified file to generate a new private and public key pair. This argument makes it possible to use hardware-generated seed values or manually create a value from the keyboard. The minimum file size is 20 bytes.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-Z hashAlg</term>
        <listitem>
        <para>Specify the hash algorithm to use with the -C, -S or -R command options. Possible keywords:</para>
        <itemizedlist>
          <listitem><para>MD2</para></listitem>
          <listitem><para>MD4</para></listitem>
          <listitem><para>MD5</para></listitem>
          <listitem><para>SHA1</para></listitem>
          <listitem><para>SHA224</para></listitem>
          <listitem><para>SHA256</para></listitem>
          <listitem><para>SHA384</para></listitem>
          <listitem><para>SHA512</para></listitem>
        </itemizedlist>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>-0 SSO_password</term>
        <listitem><para>Set a site security officer password on a token.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-1 | --keyUsage keyword,keyword</term>
        <listitem><para>Set an X.509 V3 Certificate Type Extension in the certificate. There are several available keywords:</para>
	<itemizedlist>
	<listitem>
	<para>
		digitalSignature
	</para>
	</listitem>
	<listitem>
	<para>
		nonRepudiation
	</para>
	</listitem>
	<listitem>
	<para>
		keyEncipherment
	</para>
	</listitem>
	<listitem>
	<para>
		dataEncipherment
	</para>
	</listitem>
	<listitem>
	<para>
		keyAgreement
	</para>
	</listitem>
	<listitem>
	<para>
		certSigning
	</para>
	</listitem>
	<listitem>
	<para>
		crlSigning
	</para>
	</listitem>
	<listitem>
	<para>
		critical
	</para>
	</listitem>
	</itemizedlist>
</listitem>
      </varlistentry>

      <varlistentry>
        <term>-2 </term>
        <listitem><para>Add a basic constraint extension to a certificate that is being created or added to a database. This extension supports the certificate chain verification process. <command>certutil</command> prompts for the certificate constraint extension to select.</para>
<para>X.509 certificate extensions are described in RFC 5280.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-3 </term>
        <listitem><para>Add an authority key ID extension to a certificate that is being created or added to a database. This extension supports the identification of a particular certificate, from among multiple certificates associated with one subject name, as the correct issuer of a certificate. The Certificate Database Tool will prompt you to select the authority key ID extension.</para>
<para>X.509 certificate extensions are described in RFC 5280.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-4 </term>
        <listitem><para>Add a CRL distribution point extension to a certificate that is being created or added to a database. This extension identifies the URL of a certificate's associated certificate revocation list (CRL). <command>certutil</command> prompts for the URL.</para>
<para>X.509 certificate extensions are described in RFC 5280.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-5 | --nsCertType keyword,keyword</term>
        <listitem><para>Add an X.509 V3 certificate type extension to a certificate that is being created or added to the database. There are several available keywords:</para>
	<itemizedlist>
	<listitem>
	<para>
		sslClient
	</para>
	</listitem>
	<listitem>
	<para>
		sslServer
	</para>
	</listitem>
	<listitem>
	<para>
		smime
	</para>
	</listitem>
	<listitem>
	<para>
		objectSigning
	</para>
	</listitem>
	<listitem>
	<para>
		sslCA
	</para>
	</listitem>
	<listitem>
	<para>
		smimeCA
	</para>
	</listitem>
	<listitem>
	<para>
		objectSigningCA
	</para>
	</listitem>
	<listitem>
	<para>
		critical
	</para>
	</listitem>
	</itemizedlist>

<para>X.509 certificate extensions are described in RFC 5280.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-6 | --extKeyUsage keyword,keyword</term>
        <listitem><para>Add an extended key usage extension to a certificate that is being created or added to the database. Several keywords are available:</para>
	<itemizedlist>
	<listitem>
	<para>
		serverAuth
	</para>
	</listitem>
	<listitem>
	<para>
		clientAuth
	</para>
	</listitem>
	<listitem>
	<para>
		codeSigning
	</para>
	</listitem>
	<listitem>
	<para>
		emailProtection
	</para>
	</listitem>
	<listitem>
	<para>
		timeStamp
	</para>
	</listitem>
	<listitem>
	<para>
		ocspResponder
	</para>
	</listitem>
	<listitem>
	<para>
		stepUp
	</para>
	</listitem>
	<listitem>
	<para>
		msTrustListSign
	</para>
	</listitem>
	<listitem>
	<para>
		critical
	</para>
	</listitem>
	</itemizedlist>
<para>X.509 certificate extensions are described in RFC 5280.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-7 emailAddrs</term>
        <listitem><para>Add a comma-separated list of email addresses to the subject alternative name extension of a certificate or certificate request that is being created or added to the database. Subject alternative name extensions are described in Section 4.2.1.7 of RFC 3280.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-8 dns-names</term>
        <listitem><para>Add a comma-separated list of DNS names to the subject alternative name extension of a certificate or certificate request that is being created or added to the database. Subject alternative name extensions are described in Section 4.2.1.7 of RFC 3280.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>--extAIA</term>
        <listitem><para>Add the Authority Information Access extension to the certificate. X.509 certificate extensions are described in RFC 5280.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>--extSIA</term>
        <listitem><para>Add the Subject Information Access extension to the certificate. X.509 certificate extensions are described in RFC 5280.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>--extCP</term>
        <listitem><para>Add the Certificate Policies extension to the certificate. X.509 certificate extensions are described in RFC 5280.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>--extPM</term>
        <listitem><para>Add the Policy Mappings extension to the certificate. X.509 certificate extensions are described in RFC 5280.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>--extPC</term>
        <listitem><para>Add the Policy Constraints extension to the certificate. X.509 certificate extensions are described in RFC 5280.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>--extIA</term>
        <listitem><para>Add the Inhibit Any Policy Access extension to the certificate. X.509 certificate extensions are described in RFC 5280.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>--extSKID</term>
        <listitem><para>Add the Subject Key ID extension to the certificate. X.509 certificate extensions are described in RFC 5280.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>--extNC</term>
        <listitem><para>Add a Name Constraint extension to the certificate. X.509 certificate extensions are described in RFC 5280.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>--extSAN type:name[,type:name]...</term>
        <listitem><para>
Create a Subject Alt Name extension with one or multiple names.
          </para>
          <para>
-type: directory, dn, dns, edi, ediparty, email, ip, ipaddr, other, registerid, rfc822, uri, x400, x400addr
        </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>--empty-password</term>
        <listitem><para>Use empty password when creating new certificate database with -N.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>--keyAttrFlags attrflags</term>
        <listitem><para>
PKCS #11 key Attributes. Comma separated list of key attribute flags, selected from the following list of choices: {token | session} {public | private} {sensitive | insensitive} {modifiable | unmodifiable} {extractable | unextractable}</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>--keyOpFlagsOn opflags</term>
        <term>--keyOpFlagsOff opflags</term>
        <listitem><para>
PKCS #11 key Operation Flags.
Comma separated list of one or more of the following:
{token | session} {public | private} {sensitive | insensitive} {modifiable | unmodifiable} {extractable | unextractable}
          </para></listitem>
      </varlistentry>

      <varlistentry>
        <term>--new-n nickname</term>
        <listitem><para>A new nickname, used when renaming a certificate.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>--source-dir certdir</term>
        <listitem><para>Identify the certificate database directory to upgrade.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>--source-prefix certdir</term>
        <listitem><para>Give the prefix of the certificate and key databases to upgrade.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>--upgrade-id uniqueID</term>
        <listitem><para>Give the unique ID of the database to upgrade.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>--upgrade-token-name name</term>
        <listitem><para>Set the name of the token to use while it is being upgraded.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-@ pwfile</term>
        <listitem><para>Give the name of a password file to use for the database being upgraded.</para></listitem>
      </varlistentry>

    </variablelist>
  </refsection>

  <refsection id="basic-usage">
    <title>Usage and Examples</title>
	<para>
		Most of the command options in the examples listed here have more arguments available. The arguments included in these examples are the most common ones or are used to illustrate a specific scenario. Use the <option>-H</option> option to show the complete list of arguments for each command option.
	</para>
	<para><command>Creating New Security Databases</command></para>
	<para>
		Certificates, keys, and security modules related to managing certificates are stored in three related databases:
	</para>
	<itemizedlist>
	<listitem>
	<para>
		cert8.db or cert9.db
	</para>
	</listitem>
	<listitem>
	<para>
		key3.db or key4.db
	</para>
	</listitem>
	<listitem>
	<para>
		secmod.db or pkcs11.txt
	</para>
	</listitem>
	</itemizedlist>
	<para>
		These databases must be created before certificates or keys can be generated.
	</para>
<programlisting>certutil -N -d [sql:]directory</programlisting>

	<para><command>Creating a Certificate Request</command></para>
	<para>
		A certificate request contains most or all of the information that is used to generate the final certificate. This request is submitted separately to a certificate authority and is then approved by some mechanism (automatically or by human review). Once the request is approved, then the certificate is generated.
	</para>
<programlisting>$ certutil -R -k key-type-or-id [-q pqgfile|curve-name] -g key-size -s subject [-h tokenname] -d [sql:]directory [-p phone] [-o output-file] [-a]</programlisting>
	<para>
		The <option>-R</option> command options requires four arguments:
	</para>
	<itemizedlist>
	<listitem>
	<para>
		<option>-k</option> to specify either the key type to generate or, when renewing a certificate, the existing key pair to use
	</para>
	</listitem>
	<listitem>
	<para>
		<option>-g</option> to set the keysize of the key to generate
	</para>
	</listitem>
	<listitem>
	<para>
		<option>-s</option> to set the subject name of the certificate
	</para>
	</listitem>
	<listitem>
	<para>
		<option>-d</option> to give the security database directory
	</para>
	</listitem>
	</itemizedlist>
	<para>
		The new certificate request can be output in ASCII format (<option>-a</option>) or can be written to a specified file (<option>-o</option>).
	</para>
	<para>
		For example:
	</para>
<programlisting>$ certutil -R -k rsa -g 1024 -s "CN=John Smith,O=Example Corp,L=Mountain View,ST=California,C=US" -d sql:$HOME/nssdb -p 650-555-0123 -a -o cert.cer

Generating key.  This may take a few moments...

</programlisting>

	<para><command>Creating a Certificate</command></para>
	<para>
		A valid certificate must be issued by a trusted CA. This can be done by specifying a CA certificate (<option>-c</option>) that is stored in the certificate database. If a CA key pair is not available, you can create a self-signed certificate using the <option>-x</option> argument with the <option>-S</option> command option.
	</para>
<programlisting>$ certutil -S -k rsa|dsa|ec -n certname -s subject [-c issuer |-x] -t trustargs -d [sql:]directory [-m serial-number] [-v valid-months] [-w offset-months] [-p phone] [-1] [-2] [-3] [-4] [-5 keyword] [-6 keyword] [-7 emailAddress] [-8 dns-names] [--extAIA] [--extSIA] [--extCP] [--extPM] [--extPC] [--extIA] [--extSKID]</programlisting>
	<para>
		The series of numbers and <option>--ext*</option> options set certificate extensions that can be added to the certificate when it is generated by the CA. Interactive prompts will result.
	</para>
	<para>
		For example, this creates a self-signed certificate:
	</para>
<programlisting>$ certutil -S -s "CN=Example CA" -n my-ca-cert -x -t "C,C,C" -1 -2 -5 -m 3650</programlisting>
	<para>
The interative prompts for key usage and whether any extensions are critical and responses have been ommitted for brevity.
	</para>
	<para>
		From there, new certificates can reference the self-signed certificate:
	</para>
<programlisting>$ certutil -S -s "CN=My Server Cert" -n my-server-cert -c "my-ca-cert" -t ",," -1 -5 -6 -8 -m 730</programlisting>

	<para><command>Generating a Certificate from a Certificate Request</command></para>
	<para>
		When a certificate request is created, a certificate can be generated by using the request and then referencing a certificate authority signing certificate (the <emphasis>issuer</emphasis> specified in the <option>-c</option> argument). The issuing certificate must be in the certificate database in the specified directory.
	</para>
<programlisting>certutil -C -c issuer -i cert-request-file -o output-file [-m serial-number] [-v valid-months] [-w offset-months] -d [sql:]directory [-1] [-2] [-3] [-4] [-5 keyword] [-6 keyword] [-7 emailAddress] [-8 dns-names]</programlisting>
	<para>
		For example:
	</para>
<programlisting>$ certutil -C -c "my-ca-cert" -i /home/certs/cert.req -o cert.cer -m 010 -v 12 -w 1 -d sql:$HOME/nssdb -1 nonRepudiation,dataEncipherment -5 sslClient -6 clientAuth -7 jsmith@example.com</programlisting>

	<para><command>Listing Certificates</command></para>
	<para>
		The <option>-L</option> command option lists all of the certificates listed in the certificate database. The path to the directory (<option>-d</option>) is required.
	</para>
<programlisting>$ certutil -L -d sql:/home/my/sharednssdb

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

CA Administrator of Instance pki-ca1's Example Domain ID     u,u,u
TPS Administrator's Example Domain ID                        u,u,u
Google Internet Authority                                    ,,   
Certificate Authority - Example Domain                       CT,C,C</programlisting>
	<para>
		Using additional arguments with <option>-L</option> can return and print the information for a single, specific certificate. For example, the <option>-n</option> argument passes the certificate name, while the <option>-a</option> argument prints the certificate in ASCII format:
	</para>
<programlisting>
$ certutil -L -d sql:$HOME/nssdb -a -n my-ca-cert
-----BEGIN CERTIFICATE-----
MIIB1DCCAT2gAwIBAgICDkIwDQYJKoZIhvcNAQEFBQAwFTETMBEGA1UEAxMKRXhh
bXBsZSBDQTAeFw0xMzAzMTMxOTEwMjlaFw0xMzA2MTMxOTEwMjlaMBUxEzARBgNV
BAMTCkV4YW1wbGUgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJ4Kzqvz
JyBVgFqDXRYSyTBNw1DrxUU/3GvWA/ngjAwHEv0Cul/6sO/gsCvnABHiH6unns6x
XRzPORlC2WY3gkk7vmlsLvYpyecNazAi/NAwVnU/66HOsaoVFWE+gBQo99UrN2yk
0BiK/GMFlLm5dXQROgA9ZKKyFdI0LIXtf6SbAgMBAAGjMzAxMBEGCWCGSAGG+EIB
AQQEAwIHADAMBgNVHRMEBTADAQH/MA4GA1UdDwEB/wQEAwICBDANBgkqhkiG9w0B
AQUFAAOBgQA6chkzkACN281d1jKMrc+RHG2UMaQyxiteaLVZO+Ro1nnRUvseDf09
XKYFwPMJjWCihVku6bw/ihZfuMHhxK22Nue6inNQ6eDu7WmrqL8z3iUrQwxs+WiF
ob2rb8XRVVJkzXdXxlk4uo3UtNvw8sAz7sWD71qxKaIHU5q49zijfg==
-----END CERTIFICATE-----
</programlisting>
<para>For a human-readable display</para>
<programlisting>$ certutil -L -d sql:$HOME/nssdb -n my-ca-cert
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 3650 (0xe42)
        Signature Algorithm: PKCS #1 SHA-1 With RSA Encryption
        Issuer: "CN=Example CA"
        Validity:
            Not Before: Wed Mar 13 19:10:29 2013
            Not After : Thu Jun 13 19:10:29 2013
        Subject: "CN=Example CA"
        Subject Public Key Info:
            Public Key Algorithm: PKCS #1 RSA Encryption
            RSA Public Key:
                Modulus:
                    9e:0a:ce:ab:f3:27:20:55:80:5a:83:5d:16:12:c9:30:
                    4d:c3:50:eb:c5:45:3f:dc:6b:d6:03:f9:e0:8c:0c:07:
                    12:fd:02:ba:5f:fa:b0:ef:e0:b0:2b:e7:00:11:e2:1f:
                    ab:a7:9e:ce:b1:5d:1c:cf:39:19:42:d9:66:37:82:49:
                    3b:be:69:6c:2e:f6:29:c9:e7:0d:6b:30:22:fc:d0:30:
                    56:75:3f:eb:a1:ce:b1:aa:15:15:61:3e:80:14:28:f7:
                    d5:2b:37:6c:a4:d0:18:8a:fc:63:05:94:b9:b9:75:74:
                    11:3a:00:3d:64:a2:b2:15:d2:34:2c:85:ed:7f:a4:9b
                Exponent: 65537 (0x10001)
        Signed Extensions:
            Name: Certificate Type
            Data: none

            Name: Certificate Basic Constraints
            Data: Is a CA with no maximum path length.

            Name: Certificate Key Usage
            Critical: True
            Usages: Certificate Signing

    Signature Algorithm: PKCS #1 SHA-1 With RSA Encryption
    Signature:
        3a:72:19:33:90:00:8d:db:cd:5d:d6:32:8c:ad:cf:91:
        1c:6d:94:31:a4:32:c6:2b:5e:68:b5:59:3b:e4:68:d6:
        79:d1:52:fb:1e:0d:fd:3d:5c:a6:05:c0:f3:09:8d:60:
        a2:85:59:2e:e9:bc:3f:8a:16:5f:b8:c1:e1:c4:ad:b6:
        36:e7:ba:8a:73:50:e9:e0:ee:ed:69:ab:a8:bf:33:de:
        25:2b:43:0c:6c:f9:68:85:a1:bd:ab:6f:c5:d1:55:52:
        64:cd:77:57:c6:59:38:ba:8d:d4:b4:db:f0:f2:c0:33:
        ee:c5:83:ef:5a:b1:29:a2:07:53:9a:b8:f7:38:a3:7e
    Fingerprint (MD5):
        86:D8:A5:8B:8A:26:BE:9E:17:A8:7B:66:10:6B:27:80
    Fingerprint (SHA1):
        48:78:09:EF:C5:D4:0C:BD:D2:64:45:59:EB:03:13:15:F7:A9:D6:F7

    Certificate Trust Flags:
        SSL Flags:
            Valid CA
            Trusted CA
            User
        Email Flags:
            Valid CA
            Trusted CA
            User
        Object Signing Flags:
            Valid CA
            Trusted CA
            User

</programlisting>

	<para><command>Listing Keys</command></para>
	<para>
		Keys are the original material used to encrypt certificate data. The keys generated for certificates are stored separately, in the key database. 
	</para>
	<para>
		To list all keys in the database, use the <option>-K</option> command option and the (required) <option>-d</option> argument to give the path to the directory.
	</para>
<programlisting>$ certutil -K -d sql:$HOME/nssdb
certutil: Checking token "NSS Certificate DB" in slot "NSS User Private Key and Certificate Services                  "
&lt; 0> rsa      455a6673bde9375c2887ec8bf8016b3f9f35861d   Thawte Freemail Member's Thawte Consulting (Pty) Ltd. ID
&lt; 1> rsa      40defeeb522ade11090eacebaaf1196a172127df   Example Domain Administrator Cert
&lt; 2> rsa      1d0b06f44f6c03842f7d4f4a1dc78b3bcd1b85a5   John Smith user cert</programlisting>
	<para>
		There are ways to narrow the keys listed in the search results:
	</para>
	<itemizedlist>
	<listitem>
	<para>
		To return a specific key, use the <option>-n</option> <emphasis>name</emphasis> argument with the name of the key.
	</para>
	</listitem>
	<listitem>
	<para>
		If there are multiple security devices loaded, then the <option>-h</option> <emphasis>tokenname</emphasis> argument can search a specific token or all tokens.
	</para>
	</listitem>
	<listitem>
	<para>
		If there are multiple key types available, then the <option>-k</option> <emphasis>key-type</emphasis> argument can search a specific type of key, like RSA, DSA, or ECC. 
	</para>
	</listitem>
	</itemizedlist>

	<para><command>Listing Security Modules</command></para>
	<para>
		The devices that can be used to store certificates -- both internal databases and external devices like smart cards -- are recognized and used by loading security modules. The <option>-U</option> command option lists all of the security modules listed in the <filename>secmod.db</filename> database. The path to the directory (<option>-d</option>) is required.
	</para>
<programlisting>$ certutil -U -d sql:/home/my/sharednssdb

    slot: NSS User Private Key and Certificate Services                  
   token: NSS Certificate DB
     uri: pkcs11:token=NSS%20Certificate%20DB;manufacturer=Mozilla%20Foundation;serial=0000000000000000;model=NSS%203

    slot: NSS Internal Cryptographic Services                            
   token: NSS Generic Crypto Services
     uri: pkcs11:token=NSS%20Generic%20Crypto%20Services;manufacturer=Mozilla%20Foundation;serial=0000000000000000;model=NSS%203</programlisting>

	<para><command>Adding Certificates to the Database</command></para>
	<para>
		Existing certificates or certificate requests can be added manually to the certificate database, even if they were generated elsewhere. This uses the <option>-A</option> command option.
	</para>
<programlisting>certutil -A -n certname -t trustargs -d [sql:]directory [-a] [-i input-file]</programlisting>
	<para>
		For example:
	</para>
<programlisting>$ certutil -A -n "CN=My SSL Certificate" -t ",," -d sql:/home/my/sharednssdb -i /home/example-certs/cert.cer</programlisting>
	<para>
		A related command option, <option>-E</option>, is used specifically to add email certificates to the certificate database. The <option>-E</option> command has the same arguments as the <option>-A</option> command. The trust arguments for certificates have the format <emphasis>SSL,S/MIME,Code-signing</emphasis>, so the middle trust settings relate most to email certificates (though the others can be set). For example:
	</para>
<programlisting>$ certutil -E -n "CN=John Smith Email Cert" -t ",P," -d sql:/home/my/sharednssdb -i /home/example-certs/email.cer</programlisting>

	<para><command>Deleting Certificates to the Database</command></para>
	<para>
		Certificates can be deleted from a database using the <option>-D</option> option. The only required options are to give the security database directory and to identify the certificate nickname.
	</para>
<programlisting>certutil -D -d [sql:]directory -n "nickname"</programlisting>
	<para>
		For example:
	</para>
<programlisting>$ certutil -D -d sql:/home/my/sharednssdb -n "my-ssl-cert"</programlisting>

	<para><command>Validating Certificates</command></para>
	<para>
		A certificate contains an expiration date in itself, and expired certificates are easily rejected. However, certificates can also be revoked before they hit their expiration date. Checking whether a certificate has been revoked requires validating the certificate. Validation can also be used to ensure that the certificate is only used for the purposes it was initially issued for. Validation is carried out by the <option>-V</option> command option.
	</para>
<programlisting>certutil -V -n certificate-name [-b time] [-e] [-u cert-usage] -d [sql:]directory</programlisting>
	<para>
		For example, to validate an email certificate:
	</para>
<programlisting>$ certutil -V -n "John Smith's Email Cert" -e -u S,R -d sql:/home/my/sharednssdb</programlisting>

	<para><command>Modifying Certificate Trust Settings</command></para>
	<para>
		The trust settings (which relate to the operations that a certificate is allowed to be used for) can be changed after a certificate is created or added to the database. This is especially useful for CA certificates, but it can be performed for any type of certificate.
	</para>
<programlisting>certutil -M -n certificate-name -t trust-args -d [sql:]directory</programlisting>
	<para>
		For example:
	</para>
<programlisting>$ certutil -M -n "My CA Certificate" -d sql:/home/my/sharednssdb -t "CT,CT,CT"</programlisting>

	<para><command>Printing the Certificate Chain</command></para>
	<para>
		Certificates can be issued in <emphasis>chains</emphasis> because every certificate authority itself has a certificate; when a CA issues a certificate, it essentially stamps that certificate with its own fingerprint. The <option>-O</option> prints the full chain of a certificate, going from the initial CA (the root CA) through ever intermediary CA to the actual certificate. For example, for an email certificate with two CAs in the chain:
	</para>
<programlisting>$ certutil -d sql:/home/my/sharednssdb -O -n "jsmith@example.com"
"Builtin Object Token:Thawte Personal Freemail CA" [E=personal-freemail@thawte.com,CN=Thawte Personal Freemail CA,OU=Certification Services Division,O=Thawte Consulting,L=Cape Town,ST=Western Cape,C=ZA]

  "Thawte Personal Freemail Issuing CA - Thawte Consulting" [CN=Thawte Personal Freemail Issuing CA,O=Thawte Consulting (Pty) Ltd.,C=ZA]

    "(null)" [E=jsmith@example.com,CN=Thawte Freemail Member]</programlisting>

	<para><command>Resetting a Token</command></para>
	<para>
		The device which stores certificates -- both external hardware devices and internal software databases -- can be blanked and reused. This operation is performed on the device which stores the data, not directly on the security databases, so the location must be referenced through the token name (<option>-h</option>) as well as any directory path. If there is no external token used, the default value is internal.
	</para>
<programlisting>certutil -T -d [sql:]directory -h token-name -0 security-officer-password</programlisting>
	<para>
		Many networks have dedicated personnel who handle changes to security tokens (the security officer). This person must supply the password to access the specified token. For example:
	</para>
<programlisting>$ certutil -T -d sql:/home/my/sharednssdb -h nethsm -0 secret</programlisting>

	<para><command>Upgrading or Merging the Security Databases</command></para>
	<para>
		Many networks or applications may be using older BerkeleyDB versions of the certificate database (<filename>cert8.db</filename>). Databases can be upgraded to the new SQLite version of the database (<filename>cert9.db</filename>) using the <option>--upgrade-merge</option> command option or existing databases can be merged with the new <filename>cert9.db</filename> databases using the <option>---merge</option> command.
	</para>
	<para>
		The <option>--upgrade-merge</option> command must give information about the original database and then use the standard arguments (like <option>-d</option>) to give the information about the new databases. The command also requires information that the tool uses for the process to upgrade and write over the original database.
	</para>
<programlisting>certutil --upgrade-merge -d [sql:]directory [-P dbprefix] --source-dir directory --source-prefix dbprefix --upgrade-id id --upgrade-token-name name [-@ password-file]</programlisting>
	<para>
		For example:
	</para>
<programlisting>$ certutil --upgrade-merge -d sql:/home/my/sharednssdb --source-dir /opt/my-app/alias/ --source-prefix serverapp- --upgrade-id 1 --upgrade-token-name internal</programlisting>
	<para>
		The <option>--merge</option> command only requires information about the location of the original database; since it doesn't change the format of the database, it can write over information without performing interim step.
	</para>
<programlisting>certutil --merge -d [sql:]directory [-P dbprefix] --source-dir directory --source-prefix dbprefix [-@ password-file]</programlisting>
	<para>
		For example:
	</para>
<programlisting>$ certutil --merge -d sql:/home/my/sharednssdb --source-dir /opt/my-app/alias/ --source-prefix serverapp-</programlisting>

	<para><command>Running certutil Commands from a Batch File</command></para>
	<para>
		A series of commands can be run sequentially from a text file with the <option>-B</option> command option. The only argument for this specifies the input file.
	</para>
<programlisting>$ certutil -B -i /path/to/batch-file</programlisting>
  </refsection>

<refsection id="databases"><title>NSS Database Types</title>
<para>NSS originally used BerkeleyDB databases to store security information. 
The last versions of these <emphasis>legacy</emphasis> databases are:</para>
<itemizedlist>
	<listitem>
		<para>
			cert8.db for certificates
		</para>
	</listitem>
	<listitem>
		<para>
			key3.db for keys
		</para>
	</listitem>
	<listitem>
		<para>
			secmod.db for PKCS #11 module information
		</para>
	</listitem>
</itemizedlist>

<para>BerkeleyDB has performance limitations, though, which prevent it from being easily used by multiple applications simultaneously. NSS has 
some flexibility that allows applications to use their own, independent database engine while keeping a shared database and working around the access issues. Still, NSS
requires more flexibility to provide a truly shared security database.</para>

<para>In 2009, NSS introduced a new set of databases that are SQLite databases rather than 
BerkeleyDB. These new databases provide more accessibility and performance:</para>
<itemizedlist>
	<listitem>
		<para>
			cert9.db for certificates
		</para>
	</listitem>
	<listitem>
		<para>
			key4.db for keys
		</para>
	</listitem>
	<listitem>
		<para>
			pkcs11.txt, a listing of all of the PKCS #11 modules, contained in a new subdirectory in the security databases directory
		</para>
	</listitem>
</itemizedlist>

<para>Because the SQLite databases are designed to be shared, these are the <emphasis>shared</emphasis> database type. The shared database type is preferred; the legacy format is included for backward compatibility.</para>

<para>By default, the tools (<command>certutil</command>, <command>pk12util</command>, <command>modutil</command>) assume that the given security databases follow the more common legacy type. 
Using the SQLite databases must be manually specified by using the <command>sql:</command> prefix with the given security directory. For example:</para>

<programlisting>$ certutil -L -d sql:/home/my/sharednssdb</programlisting>

<para>To set the shared database type as the default type for the tools, set the <envar>NSS_DEFAULT_DB_TYPE</envar> environment variable to <envar>sql</envar>:</para>
<programlisting>export NSS_DEFAULT_DB_TYPE="sql"</programlisting>

<para>This line can be set added to the <filename>~/.bashrc</filename> file to make the change permanent.</para>

<para>Most applications do not use the shared database by default, but they can be configured to use them. For example, this how-to article covers how to configure Firefox and Thunderbird to use the new shared NSS databases:</para>
<itemizedlist>
	<listitem>
		<para>
			https://wiki.mozilla.org/NSS_Shared_DB_Howto</para>
	</listitem>
</itemizedlist>
<para>For an engineering draft on the changes in the shared NSS databases, see the NSS project wiki:</para>
<itemizedlist>
	<listitem>
		<para>
			https://wiki.mozilla.org/NSS_Shared_DB
		</para>
	</listitem>
</itemizedlist>
</refsection>


  <refsection id="seealso">
    <title>See Also</title>
    <para>pk12util (1)</para>
    <para>modutil (1)</para>
    <para><command>certutil</command> has arguments or operations that use features defined in several IETF RFCs.</para>
	<itemizedlist>
	<listitem>
	<para>
		http://tools.ietf.org/html/rfc5280
	</para>
	</listitem>
	<listitem>
	<para>
		http://tools.ietf.org/html/rfc1113
	</para>
	</listitem>
	<listitem>
	<para>
		http://tools.ietf.org/html/rfc1485
	</para>
	</listitem>
	</itemizedlist>

	<para>The NSS wiki has information on the new database design and how to configure applications to use it.</para>
        <itemizedlist>
	<listitem>
		<para>
			https://wiki.mozilla.org/NSS_Shared_DB_Howto</para>
	</listitem>
	<listitem>
		<para>
			https://wiki.mozilla.org/NSS_Shared_DB
		</para>
	</listitem>
        </itemizedlist>
  </refsection>

<!-- don't change -->
  <refsection id="resources">
    <title>Additional Resources</title>
	<para>For information about NSS and other tools related to NSS (like JSS), check out the NSS project wiki at <ulink url="http://www.mozilla.org/projects/security/pki/nss/">http://www.mozilla.org/projects/security/pki/nss/</ulink>. The NSS site relates directly to NSS code changes and releases.</para>
	<para>Mailing lists: https://lists.mozilla.org/listinfo/dev-tech-crypto</para>
	<para>IRC: Freenode at #dogtag-pki</para>
  </refsection>

<!-- fill in your name first; keep the other names for reference -->
  <refsection id="authors">
    <title>Authors</title>
    <para>The NSS tools were written and maintained by developers with Netscape, Red Hat,  Sun, Oracle, Mozilla, and Google.</para>
    <para>
	Authors: Elio Maldonado &lt;emaldona@redhat.com>, Deon Lackey &lt;dlackey@redhat.com>.
    </para>
  </refsection>

<!-- don't change -->
  <refsection id="license">
    <title>LICENSE</title>
    <para>Licensed under the Mozilla Public License, v. 2.0.  If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
    </para>
  </refsection>

</refentry>
