Makecert.exe包含基本选项和扩展选项。基本选项是最常用于创建证书的选项。扩展选项提供更多的灵活性。
应使用证书存储区来安全地存储证书。此工具使用的.snk文件以不受保护的方式存储私钥。创建或导入.snk文件时,在使用期间应注意保证其安全,并在使用后将其移除。
makecert[options]outputCertificateFile参数说明outputCertificateFile
测试X.509证书要写入的.cer文件的名称。
-nx509name
指定主题的证书名称。此名称必须符合X.500标准。最简单的方法是在双引号中指定此名称,并加上前缀CN=;例如,"CN=myName"。
-pe
将所生成的私钥标记为可导出。这样可将私钥包括在证书中。
-skkeyname
指定主题的密钥容器位置,该位置包含私钥。如果密钥容器不存在,系统将创建一个。
-srlocation
指定主题的证书存储位置。Location可以是currentuser(默认值)或localmachine。
-ssstore
指定主题的证书存储名称,输出证书即存储在那里。
-#number
指定一个介于1和2,147,483,647之间的序列号。默认值是由Makecert.exe生成的唯一值。
-$authority
指定证书的签名权限,必须设置为commercial(对于商业软件发行者使用的证书)或individual(对于个人软件发行者使用的证书)。
-
显示此工具的命令语法和基本选项列表。
-!
显示此工具的命令语法和扩展选项列表。
-aalgorithm
指定签名算法。必须是md5(默认值)或sha1。
-bmm/dd/yyyy
-cycertType
指定证书类型。有效值是end(对于最终实体)和authority(对于证书颁发机构)。
-dname
显示主题的名称。
-emm/dd/yyyy
-ekuoid[,oid]
将用逗号分隔的增强型密钥用法对象标识符(OID)列表插入到证书中。
-hnumber
指定此证书下面的树的最大高度。
-icfile
指定颁发者的证书文件。
-ikkeyName
指定颁发者的密钥容器名称。
-ikykeytype
指定颁发者的密钥类型,必须是signature、exchange或一个表示提供程序类型的整数。默认情况下,可传入1表示交换密钥,传入2表示签名密钥。
-inname
指定颁发者的证书公用名称。
-ipprovider
指定颁发者的CryptoAPI提供程序名称。
-irlocation
指定颁发者的证书存储位置。Location可以是currentuser(默认值)或localmachine。
-isstore
指定颁发者的证书存储名称。
-ivpvkFile
指定颁发者的.pvk私钥文件。
-iypvkFile
指定颁发者的CryptoAPI提供程序类型。
-llink
到策略信息的链接(例如,一个URL)。
-mnumber
-nscp
包括Netscape客户端身份验证扩展。
-r
创建自签署证书。
-scfile
指定主题的证书文件。
-skykeytype
指定主题的密钥类型,必须是signature、exchange或一个表示提供程序类型的整数。默认情况下,可传入1表示交换密钥,传入2表示签名密钥。
-spprovider
指定主题的CryptoAPI提供程序名称。
-svpvkFile
指定主题的.pvk私钥文件。如果该文件不存在,系统将创建一个。
-sytype
指定主题的CryptoAPI提供程序类型。
下面的命令创建了一个由默认测试根颁发的测试证书并将其写入testCert.cer。
makecerttestCert.cer下面的命令创建了一个由默认测试根颁发的证书并将其保存到证书存储区。
makecert-sstestCertStore下面的命令创建了一个由默认测试根颁发的证书并将其保存到证书存储区。它将证书显式地放入currentuser存储区。
makecert-sstestCertStore-srcurrentuser下面的命令使用主题的密钥容器和证书主题的X.500名称创建一个测试证书,并将其写入textXYZ.cer。
makecert-skXYZ-n"CN=XYZCompany"testXYZ.cer下面的命令创建了一个由默认测试根颁发的证书和一个.pvk文件,并将此证书同时输出到存储区和该文件。
makecert-svtestCert.pvk-sstestCertStoretestCert.cer下面的命令创建了一个由默认测试根颁发的证书和一个密钥容器,并将此证书同时输出到存储区和该文件。
makecert-r-pe-n"CN=XYZCompany"-b01/01/2005-e01/01/2010-skyexchange-ssmy下面的命令创建了一些证书并将它们保存到存储区。第一个命令使用默认测试根创建了一个证书并将其保存到存储区。第二个命令使用新创建的证书创建了另一个证书,并将第二个证书保存到另一个存储区。
makecert-skmyTestKey-sstestCertStoremakecert-istestCertStore-ssanotherTestStore下面的命令创建了一些证书并将它们保存到存储区。第一个命令将证书保存到my存储区。第二个命令使用新创建的证书创建了另一个证书。因为my存储区中存在多个证书,所以第二个命令使用公用名称来标识第一个证书。
makecert-skmyTestKey-n"CN=XXZZYY"-ssmymakecert-ismy-in"XXZZYY"-ssanotherTestStore下面的命令创建了一些证书并将它们保存到文件和存储区。第一个命令使用默认测试根创建了一个证书并将其保存到my存储区和一个文件。第二个命令使用新创建的testCert.cer证书创建了另一个证书。因为my存储区中存在多个证书,所以第二个命令使用证书文件名来唯一标识第一个证书。
makecert-skmyTestKey-n"CN=XXZZYY"-ssmytestCert.cermakecert-ismy-ictestCert.cer-ssanotherTestStore