'\" t
.\"     Title: CRLUTIL
.\"    Author: [see the "Authors" section]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\"      Date: 19 May 2021
.\"    Manual: NSS Security Tools
.\"    Source: nss-tools
.\"  Language: English
.\"
.TH "CRLUTIL" "1" "19 May 2021" "nss-tools" "NSS Security Tools"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
crlutil \- List, generate, modify, or delete CRLs within the NSS security database file(s) and list, create, modify or delete certificates entries in a particular CRL\&.
.SH "SYNOPSIS"
.HP \w'\fBcrlutil\fR\ 'u
\fBcrlutil\fR [\fIoptions\fR] [[\fIarguments\fR]]
.SH "STATUS"
.PP
This documentation is still work in progress\&. Please contribute to the initial review in
\m[blue]\fBMozilla NSS bug 836477\fR\m[]\&\s-2\u[1]\d\s+2
.SH "DESCRIPTION"
.PP
The Certificate Revocation List (CRL) Management Tool,
\fBcrlutil\fR, is a command\-line utility that can list, generate, modify, or delete CRLs within the NSS security database file(s) and list, create, modify or delete certificates entries in a particular CRL\&.
.PP
The key and certificate management process generally begins with creating keys in the key database, then generating and managing certificates in the certificate database(see certutil tool) and continues with certificates expiration or revocation\&.
.PP
This document discusses certificate revocation list management\&. For information on security module database management, see Using the Security Module Database Tool\&. For information on certificate and key database management, see Using the Certificate Database Tool\&.
.PP
To run the Certificate Revocation List Management Tool, type the command
.PP
crlutil option [arguments]
.PP
where options and arguments are combinations of the options and arguments listed in the following section\&. Each command takes one option\&. Each option may take zero or more arguments\&. To see a usage string, issue the command without options, or with the \-H option\&.
.SH "OPTIONS AND ARGUMENTS"
.PP
.PP
\fBOptions\fR
.PP
Options specify an action\&. Option arguments modify an action\&. The options and arguments for the crlutil command are defined as follows:
.PP
\-D
.RS 4
Delete Certificate Revocation List from cert database\&.
.RE
.PP
\-E
.RS 4
Erase all CRLs of specified type from the cert database
.RE
.PP
\-G
.RS 4
Create new Certificate Revocation List (CRL)\&.
.RE
.PP
\-I
.RS 4
Import a CRL to the cert database
.RE
.PP
\-L
.RS 4
List existing CRL located in cert database file\&.
.RE
.PP
\-M
.RS 4
Modify existing CRL which can be located in cert db or in arbitrary file\&. If located in file it should be encoded in ASN\&.1 encode format\&.
.RE
.PP
\-S
.RS 4
Show contents of a CRL file which isn\*(Aqt stored in the database\&.
.RE
.PP
\fBArguments\fR
.PP
Option arguments modify an action\&.
.PP
\-a
.RS 4
Use ASCII format or allow the use of ASCII format for input and output\&. This formatting follows RFC #1113\&.
.RE
.PP
\-B
.RS 4
Bypass CA signature checks\&.
.RE
.PP
\-c crl\-gen\-file
.RS 4
Specify script file that will be used to control crl generation/modification\&. See crl\-cript\-file format below\&. If options \-M|\-G is used and \-c crl\-script\-file is not specified, crlutil will read script data from standard input\&.
.RE
.PP
\-d directory
.RS 4
Specify the database directory containing the certificate and key database files\&. On Unix the Certificate Database Tool defaults to $HOME/\&.netscape (that is, ~/\&.netscape)\&. On Windows NT the default is the current directory\&.
.sp
The NSS database files must reside in the same directory\&.
.RE
.PP
\-f password\-file
.RS 4
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\&.
.RE
.PP
\-i crl\-file
.RS 4
Specify the file which contains the CRL to import or show\&.
.RE
.PP
\-l algorithm\-name
.RS 4
Specify a specific signature algorithm\&. List of possible algorithms: MD2 | MD4 | MD5 | SHA1 | SHA256 | SHA384 | SHA512
.RE
.PP
\-n nickname
.RS 4
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\&.
.RE
.PP
\-o output\-file
.RS 4
Specify the output file name for new CRL\&. 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\&.
.RE
.PP
\-P dbprefix
.RS 4
Specify the prefix used on the NSS security database files (for example, my_cert8\&.db and my_key3\&.db)\&. This option is provided as a special case\&. Changing the names of the certificate and key databases is not recommended\&.
.RE
.PP
\-t crl\-type
.RS 4
Specify type of CRL\&. possible types are: 0 \- SEC_KRL_TYPE, 1 \- SEC_CRL_TYPE\&. This option is obsolete
.RE
.PP
\-u url
.RS 4
Specify the url\&.
.RE
.PP
\-w pwd\-string
.RS 4
Provide db password in command line\&.
.RE
.PP
\-Z algorithm
.RS 4
Specify the hash algorithm to use for signing the CRL\&.
.RE
.SH "CRL GENERATION SCRIPT SYNTAX"
.PP
CRL generation script file has the following syntax:
.PP
* Line with comments should have # as a first symbol of a line
.PP
* Set "this update" or "next update" CRL fields:
.PP
update=YYYYMMDDhhmmssZ nextupdate=YYYYMMDDhhmmssZ
.PP
Field "next update" is optional\&. Time should be in GeneralizedTime format (YYYYMMDDhhmmssZ)\&. For example: 20050204153000Z
.PP
* Add an extension to a CRL or a crl certificate entry:
.PP
addext extension\-name critical/non\-critical [arg1[arg2 \&.\&.\&.]]
.PP
Where:
.PP
extension\-name: string value of a name of known extensions\&. critical/non\-critical: is 1 when extension is critical and 0 otherwise\&. arg1, arg2: specific to extension type extension parameters
.PP
addext uses the range that was set earlier by addcert and will install an extension to every cert entries within the range\&.
.PP
* Add certificate entries(s) to CRL:
.PP
addcert range date
.PP
range: two integer values separated by dash: range of certificates that will be added by this command\&. dash is used as a delimiter\&. Only one cert will be added if there is no delimiter\&. date: revocation date of a cert\&. Date should be represented in GeneralizedTime format (YYYYMMDDhhmmssZ)\&.
.PP
* Remove certificate entry(s) from CRL
.PP
rmcert range
.PP
Where:
.PP
range: two integer values separated by dash: range of certificates that will be added by this command\&. dash is used as a delimiter\&. Only one cert will be added if there is no delimiter\&.
.PP
* Change range of certificate entry(s) in CRL
.PP
range new\-range
.PP
Where:
.PP
new\-range: two integer values separated by dash: range of certificates that will be added by this command\&. dash is used as a delimiter\&. Only one cert will be added if there is no delimiter\&.
.PP
Implemented Extensions
.PP
The extensions defined for CRL provide methods for associating additional attributes with CRLs of theirs entries\&. For more information see RFC #3280
.PP
* Add The Authority Key Identifier extension:
.PP
The authority key identifier extension provides a means of identifying the public key corresponding to the private key used to sign a CRL\&.
.PP
authKeyId critical [key\-id | dn cert\-serial]
.PP
Where:
.PP
authKeyIdent: identifies the name of an extension critical: value of 1 of 0\&. Should be set to 1 if this extension is critical or 0 otherwise\&. key\-id: key identifier represented in octet string\&. dn:: is a CA distinguished name cert\-serial: authority certificate serial number\&.
.PP
* Add Issuer Alternative Name extension:
.PP
The issuer alternative names extension allows additional identities to be associated with the issuer of the CRL\&. Defined options include an rfc822 name (electronic mail address), a DNS name, an IP address, and a URI\&.
.PP
issuerAltNames non\-critical name\-list
.PP
Where:
.PP
subjAltNames: identifies the name of an extension should be set to 0 since this is non\-critical extension name\-list: comma separated list of names
.PP
* Add CRL Number extension:
.PP
The CRL number is a non\-critical CRL extension which conveys a monotonically increasing sequence number for a given CRL scope and CRL issuer\&. This extension allows users to easily determine when a particular CRL supersedes another CRL
.PP
crlNumber non\-critical number
.PP
Where:
.PP
crlNumber: identifies the name of an extension critical: should be set to 0 since this is non\-critical extension number: value of long which identifies the sequential number of a CRL\&.
.PP
* Add Revocation Reason Code extension:
.PP
The reasonCode is a non\-critical CRL entry extension that identifies the reason for the certificate revocation\&.
.PP
reasonCode non\-critical code
.PP
Where:
.PP
reasonCode: identifies the name of an extension non\-critical: should be set to 0 since this is non\-critical extension code: the following codes are available:
.PP
unspecified (0), keyCompromise (1), cACompromise (2), affiliationChanged (3), superseded (4), cessationOfOperation (5), certificateHold (6), removeFromCRL (8), privilegeWithdrawn (9), aACompromise (10)
.PP
* Add Invalidity Date extension:
.PP
The invalidity date is a non\-critical CRL entry extension that provides the date on which it is known or suspected that the private key was compromised or that the certificate otherwise became invalid\&.
.PP
invalidityDate non\-critical date
.PP
Where:
.PP
crlNumber: identifies the name of an extension non\-critical: should be set to 0 since this is non\-critical extension date: invalidity date of a cert\&. Date should be represented in GeneralizedTime format (YYYYMMDDhhmmssZ)\&.
.SH "USAGE"
.PP
The Certificate Revocation List Management Tool\*(Aqs capabilities are grouped as follows, using these combinations of options and arguments\&. Options and arguments in square brackets are optional, those without square brackets are required\&.
.PP
See "Implemented extensions" for more information regarding extensions and their parameters\&.
.PP
* Creating or modifying a CRL:
.sp
.if n \{\
.RS 4
.\}
.nf
crlutil \-G|\-M \-c crl\-gen\-file \-n nickname [\-i crl] [\-u url] [\-d keydir] [\-P dbprefix] [\-l alg] [\-a] [\-B] 
      
.fi
.if n \{\
.RE
.\}
.PP
* Listing all CRls or a named CRL:
.sp
.if n \{\
.RS 4
.\}
.nf
	crlutil \-L [\-n crl\-name] [\-d krydir] 
      
.fi
.if n \{\
.RE
.\}
.PP
* Deleting CRL from db:
.sp
.if n \{\
.RS 4
.\}
.nf
	crlutil \-D \-n nickname [\-d keydir] [\-P dbprefix] 
      
.fi
.if n \{\
.RE
.\}
.PP
* Erasing CRLs from db:
.sp
.if n \{\
.RS 4
.\}
.nf
	crlutil \-E [\-d keydir] [\-P dbprefix] 
      
.fi
.if n \{\
.RE
.\}
.PP
* Deleting CRL from db:
.sp
.if n \{\
.RS 4
.\}
.nf
          crlutil \-D \-n nickname [\-d keydir] [\-P dbprefix]
    
.fi
.if n \{\
.RE
.\}
.PP
* Erasing CRLs from db:
.sp
.if n \{\
.RS 4
.\}
.nf
          crlutil \-E [\-d keydir] [\-P dbprefix] 
    
.fi
.if n \{\
.RE
.\}
.PP
* Import CRL from file:
.sp
.if n \{\
.RS 4
.\}
.nf
          crlutil \-I \-i crl [\-t crlType] [\-u url] [\-d keydir] [\-P dbprefix] [\-B] 
    
.fi
.if n \{\
.RE
.\}
.SH "SEE ALSO"
.PP
certutil(1)
.SH "ADDITIONAL RESOURCES"
.PP
For information about NSS and other tools related to NSS (like JSS), check out the NSS project wiki at
\m[blue]\fBhttp://www\&.mozilla\&.org/projects/security/pki/nss/\fR\m[]\&. The NSS site relates directly to NSS code changes and releases\&.
.PP
Mailing lists: https://lists\&.mozilla\&.org/listinfo/dev\-tech\-crypto
.PP
IRC: Freenode at #dogtag\-pki
.SH "AUTHORS"
.PP
The NSS tools were written and maintained by developers with Netscape, Red Hat, Sun, Oracle, Mozilla, and Google\&.
.PP
Authors: Elio Maldonado <emaldona@redhat\&.com>, Deon Lackey <dlackey@redhat\&.com>\&.
.SH "LICENSE"
.PP
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/\&.
.SH "NOTES"
.IP " 1." 4
Mozilla NSS bug 836477
.RS 4
\%https://bugzilla.mozilla.org/show_bug.cgi?id=836477
.RE
