Certutil tasks for troubleshooting certificates
Updated: January 21, 2005
Applies To: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2
Certutil tasks for troubleshooting certificates
Certutil is a powerful tool for troubleshooting problems associated with certification authorities. You can use certutil to troubleshoot problems.
To view the syntax for a specific task, click a task:
-
To display the information stored in public key related files
-
To view CA database information and restrict the CA schema information that is displayed
-
To dump the serial numbers of the certificates in the database
-
To display CA registry settings
-
To set the CA registry to perform a certain action when a request arrives
-
To set CA registry settings
-
To delete a registry value
-
To display error message text for an error code in the local language
-
To verify that the server is running (ICertRequest interface)
-
To verify that the server is running (ICertAdmin interface)
-
To generate and display the cryptographic hash over a file
-
To dump the CA database schema
-
To display all key container names that are available to the current user
-
To provide a PKCS#10 request file to an Entrust CA for cross-certification
-
To reassociate a private key with its certificate
-
To verify that the URLs in the AIA and CDP extensions are valid and correct
-
To check a certificate on a smart card
-
To view templates that are installed locally
-
To determine what CSP is used for a key pair
To display the information stored in public key related files
Syntax
certutil -dump [-f] [-gmt] [-seconds] [-split] [-v] [-p Password] [FileName]
Parameters
- -dump
- Dumps configuration information or files.
- -f
- Overwrites existing files or keys.
- -gmt
- Displays time as Greenwich mean time.
- -seconds
- Displays time with seconds and milliseconds.
- -split
- Splits the embedded Abstract Syntax Notation One (ASN.1) elements, and saves them to files.
- -v
- Specifies verbose output.
- -p Password
- Specifies a password.
- FileName
- Specifies the file name of the configuration file that you want to display.
- -?
- Displays a list of certutil commands.
To view CA database information and restrict the CA schema information that is displayed
Syntax
certutil -view [-gmt] [-seconds] [-silent] [-split] [-v] [-config CAMachineName\CAName] [-restrict RestrictionList] [-out ColumnList] [RequestID]
Parameters
- -view
- Dumps the certification authority database view.
- -gmt
- Displays time as Greenwich mean time.
- -seconds
- Displays time with seconds and milliseconds.
- -silent
- Uses a silent flag to acquire CryptContext.
- -split
- Splits the embedded Abstract Syntax Notation One (ASN.1) elements, and saves them to files.
- -v
- Specifies verbose output.
- -config CAMachineName \ CAName
-
- -restrict RestrictionList
- Restricts the rows in the file specified by RestrictionList, which is a text file that contains a comma-delimited list.
- -out ColumnList
- Specifies the columns in the file specified by ColumnList, which is a text file that contains a comma-delimited list.
- RequestID
- Specifies the request identifier number.
- -?
- Displays a list of certutil commands.
Remarks
-
You must specify the CAComputerName or CAName in -config CAComputerName\CAName. Otherwise, the Select Certificate Authority dialog box appears and displays a list of all CAs that are available.
-
If you use -config - instead of -config CAComputerName\CAName, the operation is processed using the default CA.
-
Used without parameters, certutil displays a list of your CA configuration strings.
Examples
To list the subject e-mail names from all certificates issued from a CA named Myentrootca that is located on Cacomputer1, type:
certutil -config cacomputer1\myentrootca -view -out request.email
To restrict the rows displayed to those with request identifiers greater than 10,000 and then display only the request disposition from a CA named Myentrootca, type:
certutil -config cacomputer1\myentrootca -view -out disposition -restrict "requestid>10,000"
To view only the last row, type:
Certutil -config cacomputer1\myentrootca -view -out disposition -restrict "requestid == $"
To view only the second to last row, type:
certutil -config cacomputer1\myentrootca -view -out disposition -restrict "requestid == $ - 1"
To view the subject e-mail names for all requests made to a CA, type:
certutil -view -out email
To display the numeric request identifiers of certificates based on the User template, type:
certutil -view -restrict "Certificate Template=User" -out requestid
To display the numeric request identifiers of certificates based on the template object identifier, 1.2.3.4.5.5.6.6.6.6.5.6, type:
certutil -view -restrict "Certificate Template=1.2.3.4.5.5.6.6.6.6.5.6" -out requestid
To display all serial numbers and request identifier numbers for unrevoked certificates issued by the CA, type:
certutil -view -restrict disposition==20 /out "serialnumber,requestid"
To view e-mail of the users who made the request for a template named MyTemplate and to also view when the request was issued, type:
certutil -config cacomputer1\myentrootca -view -out email -restrict "CertificateTemplate == myTemplate, Disposition == 20"
To dump the serial numbers of the certificates in the database
Syntax
certutil -view [-gmt] [-seconds] [-silent] [-split] [-v] [-config CAMachineName\CAName] [-restric RestrictionList] [-out ColumnList] [{disposition==20 | disposition==21}] "serialnumber,requestid"
Parameters
- -view
- Dumps the certification authority database view.
- -gmt
- Displays time as Greenwich mean time.
- -seconds
- Displays time with seconds and milliseconds.
- -silent
- Uses a silent flag to acquire CryptContext.
- -split
- Splits the embedded Abstract Syntax Notation One (ASN.1) elements, and saves them to files.
- -v
- Specifies verbose output.
- -config CAMachineName \ CAName
- processes the operation by using the CA specified in the configuration string (that is, CAMachineName\CAName).
- -restrict RestrictionList
- Restricts the rows in the file specified by RestrictionList, which is a text file that contains a comma-delimited list.
- -out ColumnList
- Specifies the columns in the file specified by ColumnList, which is a text file that contains a comma-delimited list.
- disposition==20
- Specifies DB_DISP_ISSUED.
- disposition==21
- Specifies DB_DISP_REVOKED.
- "serialnumber,requestid"
- Specifies to display all serial numbers and request identifier numbers.
- -?
- Displays a list of certutil commands.
Remarks
-
You must specify the CAComputerName or CAName in -config CAComputerName\CAName. Otherwise, the Select Certificate Authority dialog box appears and displays a list of all CAs that are available.
-
If you use -config - instead of -config CAComputerName\CAName, the operation is processed using the default CA.
Examples
To display all serial numbers and request identifier numbers for unrevoked certificates issued by the CA, type:
certutil -view -restrict disposition==20 /out "serialnumber,requestid"
To display CA registry settings
Syntax
certutil -getreg [-user] [-gmt] [-seconds] [-v] [{ca | restore | policy | exit |template}] [\ProgID] \RegistryValueName
Parameters
- -getreg
- Displays registry information.
- -user
- Uses the HKEY_CURRENT_USER keys or certificate store.
- -gmt
- Displays time as Greenwich mean time.
- -seconds
- Displays time with seconds and milliseconds.
- -v
- Specifies verbose output.
- ca
- Specifies the CA registry key.
- restore
- Specifies the RESTORE registry key.
- policy
- Specifies the POLICYMODULE registry key.
- exit
- Specifies the EXITMODE registry key.
- template
- Specifies the TEMPLATE registry key.
- \ ProgID
- Specifies the registry subkey name of the policy or exit module.
- \ RegistryValueName
- Specifies a particular value within the registry key.
- -?
- Displays a list of certutil commands.
Remarks
-
Restore is only available during restore mode.
-
If you do not specify ProgID, certutil-getreg uses the default policy module, CertificateAuthority_MicrosoftDefault.Policy.
Examples
To display information about the active CA, type:
certutil -getreg Active
To display the common name of the CA, type:
certutil -getreg ca\CommonName
To display information about what disposition action the policy module will take, type:
certutil -getreg Policy\RequestDisposition
To set the CA registry to perform a certain action when a request arrives
Syntax
certutil -setreg [-user] [-gmt] [-seconds] [-v] policy\requestdisposition [{0 | 1 | 2 | 3}]
Parameters
- -setreg
- Sets or edits the registry key value.
- -user
- Uses the HKEY_CURRENT_USER keys or certificate store.
- -gmt
- Displays time as Greenwich mean time.
- -seconds
- Displays time with seconds and milliseconds.
- -v
- Specifies verbose output.
- policy\requestdisposition
- Specifies the policy module and the disposition request ID.
- { 0| 1| 2| 3}
-
Adds a process to a pending request specified by one of values described in the following table.
Value Description 0
Places the incoming request in a pending state.
1
Issues the incoming request.
2
Denies the incoming request.
3
Takes action based on the disposition request attribute provided with the incoming request.
- -?
- Displays a list of certutil commands.
Caution
-
Incorrectly editing the registry may severely damage your system. Before making changes to the registry, you should back up any valued data on the computer.
Note
-
You must restart the certification authority for this change to take effect. For more information on restarting Certificate Services, see Start, stop, pause, resume, or restart a service.
To set CA registry settings
Syntax
certutil -setreg [-user] [-gmt] [-seconds] [-v] [{ca | restore | policy | exit | template} [\ProgID]\RegistryValueName
Parameters
- -setreg
- Sets or edits registry information.
- -user
- Uses the HKEY_CURRENT_USER keys or certificate store.
- -gmt
- Displays time as Greenwich mean time.
- -seconds
- Displays time with seconds and milliseconds.
- -v
- Specifies verbose output.
- ca
- Specifies the CA registry key.
- restore
- Specifies the RESTORE registry key.
- policy
- Specifies the POLICYMODULE registry key.
- exit
- Specifies the EXITMODE registry key.
- \ ProgID
- Specifies the registry subkey name of the policy or exit module.
- \ RegistryValueName
- Specifies a particular value within the registry key.
- -?
- Displays a list of certutil commands.
Caution
-
Incorrectly editing the registry may severely damage your system. Before making changes to the registry, you should back up any valued data on the computer.
Remarks
-
You must restart the certification authority for this change to take effect. For more information on restarting Certificate Services, see Start, stop, pause, resume, or restart a service.
-
Restore is only available when you are running certutil in restore mode.
-
If you do not specify ProgID, certutil-getreg uses the default policy module, CertificateAuthority_MicrosoftDefault.Policy.
-
You can modify specific flags within the DWORD registry by using -setreg.
Examples
To set the request disposition to one, type:
certutil /setreg policy\requestdisposition 1
To set the ninth bit in the DWORD registry policy\RevocationType, type:
certutil -setreg policy\revocationtype +0x100
To reset the ninth bit in the DWORD registry policy\RevocationType, type:
certutil -setreg policy\revocationtype -0x100
To delete a registry value
Syntax
certutil -delreg [-user] [-gmt] [-seconds] [-v] [{ca | restore | policy | exit | template} [\ProgID] \RegistryValueName
Parameters
- -delreg
- Deletes the registry value.
- -user
- Uses the HKEY_CURRENT_USER keys or certificate store.
- -gmt
- Displays time as Greenwich mean time.
- -seconds
- Displays time with seconds and milliseconds.
- -v
- Specifies verbose output.
- ca
- Specifies the CA registry key.
- restore
- Specifies the RESTORE registry key.
- policy
- Specifies the POLICYMODULE registry key.
- exit
- Specifies the EXITMODE registry key.
- template
- Specifies the TEMPLATE registry key.
- \ ProgID
- Specifies the registry subkey name of the policy or exit module.
- \ RegistryValueName
- Specifies any CA registry value.
- -?
- Displays a list of certutil commands.
Remarks
-
You must restart the certification authority for this change to take effect. For more information on restarting Certificate Services, see Start, stop, pause, resume, or restart a service.
-
Restore is only available during backup and restore modes.
-
If you do not specify ProgID, certutil-getreg uses the default policy module, CertificateAuthority_MicrosoftDefault.Policy.
To display error message text for an error code in the local language
Syntax
certutil -error ErrorCode
Parameters
- -error
- Displays error code message text in the local language, which is specified by the Locale registry key.
- ErrorCode
- Specifies the error code that you want to view in the local language.
- -?
- Displays a list of certutil commands.
Remarks
-
For ErrorCode, you can use signed or unsigned decimal format, or hexadecimal format with a leading 0x.
-
You can use this command to decode errors received from the Certification Authority snap-in.
To verify that the server is running (ICertRequest interface)
Syntax
certutil -ping [-gmt] [-seconds] [-v] [-config CAMachineName\CAName]
Parameters
- -ping
- Pings the Certificate Services ICertRequest interface.
- -gmt
- Displays time as Greenwich mean time.
- -seconds
- Displays time with seconds and milliseconds.
- -v
- Specifies verbose output.
- -config CAMachineName \ CAName
-
- -?
- Displays a list of certutil commands.
Remarks
-
You must specify the CAComputerName or CAName in -config CAComputerName\CAName. Otherwise, the Select Certificate Authority dialog box appears and displays a list of all CAs that are available.
-
If you use -config - instead of -config CAComputerName\CAName, the operation is processed using the default CA.
To verify that the server is running (ICertAdmin interface)
Syntax
certutil -pingadmin [-gmt] [-seconds] [-v] [-config CAMachineName\CAName]
Parameters
- -pingadmin
- Pings the Certificate Services ICertAdmin interface.
- -gmt
- Displays time as Greenwich mean time.
- -seconds
- Displays time with seconds and milliseconds.
- -v
- Specifies verbose output.
- -config CAMachineName \ CAName
-
- -?
- Displays a list of certutil commands.
Remarks
-
You must specify the CAComputerName or CAName in -config CAComputerName\CAName. Otherwise, the Select Certificate Authority dialog box appears and displays a list of all CAs that are available.
-
If you use -config - instead of -config CAComputerName\CAName, the operation is processed using the default CA.
-
To determine whether you have successfully completed this command, make sure that the user has administrative access to the server.
To generate and display the cryptographic hash over a file
Syntax
certutil -hashfile [-gmt] [-seconds] [-v] InFile
Parameters
- -hashfile
- Generates and displays cryptographic hash over a file.
- -gmt
- Displays time as Greenwich mean time.
- -seconds
- Displays time with seconds and milliseconds.
- -v
- Specifies verbose output.
- InFile
- Specifies the file for which you want to display the hash.
- -?
- Displays a list of certutil commands.
To dump the CA database schema
Syntax
certutil -schema [-gmt] [-seconds] [-split] [-v] [-config CAMachineName\CAName] [{Ext | Attib | CRL}]
Parameters
- -config ConfigString
- Processes the operation by using the CA specified in the configuration string (that is, ConfigString). Without this option, the default CA processes the request.
- -schema
- Dumps the CA database schema.
- -gmt
- Displays time as Greenwich mean time.
- -seconds
- Displays time with seconds and milliseconds.
- -split
- Splits the embedded Abstract Syntax Notation One (ASN.1) elements, and saves them to files.
- -v
- Specifies verbose output.
- -config CAMachineName \ CAName
- processes the operation by using the CA specified in the configuration string (that is, CAMachineName\CAName).
- Ext
- Displays the schema for Ext table.
- Attib
- Displays the schema for Attib table.
- CRL
- Displays the schema for the certificate revocation list (CRL).
- -?
- Displays a list of certutil commands.
Remarks
-
You must specify the CAComputerName or CAName in -config CAComputerName\CAName. Otherwise, the Select Certificate Authority dialog box appears and displays a list of all CAs that are available.
-
If you use -config - instead of -config CAComputerName\CAName, the operation is processed using the default CA.
Examples
To view the CA database schema, type:
certutil -schema
To display all key container names that are available to the current user
Syntax
certutil -key [-user] [-gmt] [-seconds] [-silent] [-v] [CSPName] [*]
Parameters
- -key
- Displays the key containers for the local computer.
- -user
- Uses the HKEY_CURRENT_USER keys or certificate store.
- -gmt
- Displays time as Greenwich mean time.
- -seconds
- Displays time with seconds and milliseconds.
- -silent
- Uses a silent flag to acquire CryptContext.
- -v
- Specifies verbose output.
- CSPName
- Specifies the cryptographic service provider (CSP) for which you want to display the key containers.
- *
- Displays the key containers for all of the CSPs.
- -?
- Displays a list of certutil commands.
Remarks
-
RSA is the default CSP for the Windows Server 2003 family. To specify an alternate CSP provider, use the CSPName command-line option. For more information about RSA, see the RSA Labs Web site. Web addresses can change, so you might be unable to connect to the Web site or sites mentioned here.
To provide a PKCS#10 request file to an Entrust CA for cross-certification
Syntax
certutil -split [-gmt] [-seconds] [-v] CMC.req
Parameters
- -split
- Analyzes each binary (ASN.1-encoded) object in a certificate request file, and then saves each object to a separate blob file.
- -gmt
- Displays time as Greenwich mean time.
- -seconds
- Displays time with seconds and milliseconds.
- -v
- Specifies verbose output.
- CMC .req
- Specifies the Cryptographic Message Syntax (CMS) request (this protocol is also known as CMC) file that you want to analyze.
- -?
- Displays a list of certutil commands.
Remarks
-
For more information about creating a CMS request from the root certificate by using the certreq –policy command, see Certreq in Related Topics. In Certreq, see the "To construct a cross-certification or qualified subordination request from an existing CA certificate or request" task.
-
If possible, when you construct a request from an existing certificate, you should run the certreq –policy command on a computer that has the input certificate's private key installed. If the private key is unavailable (as is usually the case for cross-certifying non-Microsoft CAs), the PKCS #10 file is NULL-signed and the outer CMS is also NULL-signed. A NULL-signed PKCS#10 is unacceptable to most non-Microsoft CAs.
To reassociate a private key with its certificate
Syntax
certutil -repairstore [{-cspCSPName[-f]}] [-enterprise] [-user] [-gmt] [-seconds] [-split] [-v] [{ca | my| root | spc}] CertIndex
Parameters
- -repairstore
- Repairs the key provider information in the ca store.
- -csp
- Uses only the cryptographic service provider (CSP) specified to locate and repair the key.
- CSPName
- Specifies the name of the CSP to use.
- -f
- Used with -csp to locate a key when necessary to force searching for the key using the specified CSP.
- -enterprise
- Uses the local computer Enterprise registry certificate store.
- -user
- Uses the HKEY_CURRENT_USER keys or certificate store.
- -gmt
- Displays time as Greenwich mean time.
- -seconds
- Displays time with seconds and milliseconds.
- -split
- Splits the embedded Abstract Syntax Notation One (ASN.1) elements, and saves them to files.
- -v
- Specifies verbose output.
- ca
- Specifies certificates in the Intermediate Certification Authorities store.
- my
- Specifies certificates issued to the local computer.
- root
- Specifies certificates in the Trusted Root Certification Authorities store.
- spc
- Specifies software publisher certificates.
- CertIndex
- Specifies the Secure Hash Algorithm (SHA-1) certificate hash, serial number, or certificate index identifier.
- -?
- Displays a list of certutil commands.
Remarks
-
If the certificate is located in the HKEY_LOCAL_MACHINE certificate store, do not use -user.
To verify that the URLs in the AIA and CDP extensions are valid and correct
Syntax
certutil -url[-f] [-gmt] [-seconds] [-split] [-v] CertFile.crt
Parameters
- -url
- Verifies certificate or certificate revocation list (CRL) URLs.
- -f
- Overwrites existing files or keys.
- -gmt
- Displays time as Greenwich mean time.
- -seconds
- Displays time with seconds and milliseconds.
- -split
- Splits the embedded Abstract Syntax Notation One (ASN.1) elements, and saves them to files.
- -v
- Specifies verbose output.
- CertFile .crt
- Specifies the certificate file.
- -?
- Displays a list of certutil commands.
Remarks
-
To make sure that the URLs are valid and point to the appropriate CRLs or issuing CA certificates, you can use this command to check the Authority Information Access (AIA) and CRL Distribution Points (CDPs) extensions, and then dereference the URLs inside these extensions.
To check a certificate on a smart card
Syntax
certutil -scinfo [-gmt] [-seconds] [-silent] [-split] [-v] [ReaderName]
Parameters
- -scinfo
- Displays smart card information.
- -gmt
- Displays time as Greenwich mean time.
- -seconds
- Displays time with seconds and milliseconds.
- -silent
- Uses a silent flag to acquire CryptContext.
- -split
- Splits the embedded Abstract Syntax Notation One (ASN.1) elements, and saves them to files.
- -v
- Specifies verbose output.
- ReaderName
- Specifies the name of the smart card reader.
- -?
- Displays a list of certutil commands.
To view templates that are installed locally
Syntax
certutil -template [-user] [-ut] [-mt] [-gmt] [-seconds] [-v] TemplateName
Parameters
- -template
- Displays the specified template.
- -user
- Uses the HKEY_CURRENT_USER keys or certificate store.
- -ut
- Displays the user templates.
- -mt
- Displays the computer templates.
- -gmt
- Displays time as Greenwich mean time.
- -seconds
- Displays time with seconds and milliseconds.
- -v
- Specifies verbose output.
- TemplateName
- Specifies the name of the template that you want to view.
- -?
- Displays a list of certutil commands.
To determine what CSP is used for a key pair
Syntax
certutil PFXfile .pfx
Parameters
- PFXfile .pfx
- Specifies a file with a .pfx extension.
- -?
- Displays a list of certutil commands.
Remarks
-
After you import the .pfx file, you can display the HKEY_CURRENT_USER "My" store using the following syntax:
certutil /user /store my [CertIndex]
This command displays each certificate key's cryptographic service provider (CSP) asProvider=xxx. -
In place of CertIndex, you can specify the decimal, the zero-based certificate store index number, the common name, the Secure Hash Algorithm (SHA-1), or the public key SHA-1.
Formatting legend
| Format | Meaning |
|---|---|
|
Italic |
Information that the user must supply |
|
Bold |
Elements that the user must type exactly as shown |
|
Ellipsis (...) |
Parameter that can be repeated several times in a command line |
|
Between brackets ([]) |
Optional items |
|
Between braces ({}); choices separated by pipe (|). Example: {even|odd} |
Set of choices from which the user must choose only one |
|
|
Code or program output |
