The Certificate Creation tool generates X.509 certificates for testing purposes only. It creates a public and private key pair for digital signatures and stores it in a certificate file. This tool also associates the key pair with a specified publisher's name and creates an X.509 certificate that binds a user-specified name to the public part of the key pair.
Makecert.exe includes basic and extended options. Basic options are those most commonly used to create a certificate. Extended options provide more flexibility.
makecert [options] outputCertificateFile
| Argument | Description |
|---|---|
| outputCertificateFile | The name of the .cer file where the test X.509 certificate will be written. |
Basic Options
| Option | Description |
|---|---|
| -n x509name | Specifies the subject's certificate name. This name must conform to the X.500 standard. The simplest method is to specify the name in double quotes, preceded by CN=; for example, "CN=myName". |
| -sk keyname | Specifies the subject's key container location, which contains the private key. If a key container does not exist, it will be created. |
| -sr location | Specifies the subject's certificate store location. Location can be either currentuser (the default), or localmachine. |
| -ss store | Specifies the subject's certificate store name that stores the output certificate. |
| -# number | Specifies a serial Number from 1 to 2^31-1. The default is a unique value generated by Makecert.exe. |
| -$ authority | Specifies the signing authority of the certificate, which must be set to either commercial (for certificates used by commercial software publishers) or individual (for certificates used by individual software publishers). |
| -? | Displays command syntax and a list of basic options for the tool. |
| -! | Displays command syntax and a list of extended options for the tool. |
Extended Options
| Option | Description |
|---|---|
| -a algorithm | Specifies the signature algorithm. Must be either md5 (the default) or sha1. |
| -b mm/dd/yyyy | Specifies the start of the validity period. Defaults to the certificate's creation date. |
| -cy certType | Specifies the certificate type. Valid values are end for end-entity, authority for certification authority, or both. |
| -d name | Displays the subject's name. |
| -e mm/dd/yyyy | Specifies the end of the validity period. Defaults to 12/31/2039 11:59:59 GMT. |
| -eku oid[,oid] | Inserts a list of comma-separated, enhanced key usage object identifiers (OIDs) into the certificate. |
| -h number | Specifies the maximum height of the tree below this certificate. |
| -ic file | Specifies the issuer's certificate file. |
| -ik keyName | Specifies the issuer's key container name. |
| -iky keytype | Specifies the issuer's key type, which must be signature, exchange, or an integer (such as 4). |
| -in name | Specifies the issuer's certificate common name. |
| -ip provider | Specifies the issuer's CryptoAPI provider name. |
| -ir location | Specifies the location of the issuer's certificate store. Location can be either currentuser (the default) or localmachine. |
| -is store | Specifies the issuer's certificate store name. |
| -iv pvkFile | Specifies the issuer's .pvk private key file. |
| -iy pvkFile | Specifies the issuer's CryptoAPI provider type. |
| -l link | Links to policy information (for example, a URL). |
| -m number | Specifies the duration, in months, of the certificate validity period. |
| -nscp | Includes the Netscape client-authorization extension. |
| -r | Creates a self-signed certificate. |
| -sc file | Specifies the subject's certificate file. |
| -sky keytype | Specifies the subject's key type, which must be signature, exchange, or an integer (such as 4). |
| -sp provider | Specifies the subject's CryptoAPI provider name. |
| -sv pvkFile | Specifies the subject's .pvk private key file. The file is created if none exists. |
| -sy type | Specifies the subject's CryptoAPI provider type. |
Examples
The following command creates a test certificate and writes it to testCert.cer.
makecert testCert.cer
The following command creates a test certificate and writes it to textXYZ.cer, using the subject's key container and the certificate subject's X.500 name.
makecert -sk XYZ -n "CN=XYZ Company" testXYZ.cer
See Also
.NET Framework Tools | Software Publisher Certificate Test Tool (Cert2spc.exe)