MakeCert
注意
已弃用 Makecert。 可使用 Powershell CmdletNew-SelfSignedCertificate 创建自签名证书。
MakeCert 工具创建由测试根密钥或其他指定密钥签名的 X.509 证书,该证书将您的名称绑定到密钥对的公共部分。 证书将被保存到文件、系统证书存储或两者中。 该工具安装在 Microsoft Windows 软件开发工具包 (SDK) 安装路径下的 \Bin 文件夹中。
可以从 Windows 开发人员中心下载 Windows SDK。
MakeCert 工具使用以下命令语法:
MakeCert [BasicOptions|ExtendedOptions] OutputFile
OutputFile 是将写入证书的文件名称。 如果证书未被写入文件,则可以省略 OutputFile。
选项
MakeCert 包括基本选项和扩展选项。 基本选项是最常用于创建证书的选项。 扩展选项提供更大的灵活性。
MakeCert 的选项也分为三个功能组:
- 仅特定于证书存储技术的基本选项。
- 仅特定于 SPC 文件和私钥技术的扩展选项。
- 适用于 SPC 文件、私钥和证书存储技术的扩展选项。
下表中提供的选项只能与 Internet Explorer 4.0 或更高版本一起使用。
“基本”选项 | 说明 |
---|---|
-aAlgorithm | 哈希算法。 必须设置为 SHA-1 或 MD5(默认值)。 有关 MD5 的详细信息,请参阅 MD5。 |
-bDateStart | 证书首次生效日期。 默认值为证书创建时间。 DateStart 的格式为 mm/dd/yyyy。 |
-cyCertificateTypes | 证书类型。 CertificateType 可以是终端实体的终端,也可以是证书颁发机构的颁发机构。 |
-eDateEnd | 有效期结束的日期。 默认为 2039 年。 |
-ekuOID1,OID2 … | 将一个或多个逗号分隔的增强型密钥使用对象标识符 (OID) 的列表插入证书。 例如,-eku 1.3.6.1.5.5.7.3.2 插入客户端身份验证 OID。 有关允许的 OID 的定义,请参阅 CryptoAPI 2.0 中的 Wincrypt.h 文件。 |
-hNumChildren | 此证书下方树的最大高度。 |
-lPolicyLink | 链接到 SPC 代理策略信息(例如 URL)。 |
-mnMonths | 有效期的持续时间。 |
-n"Name" | 发布者的证书名称。 此名称必须符合 X.500 标准。 最简单的方法是使用"CN=MyName"格式。 例如:-n "CN=Test"。 |
-nscp | 应包括 Netscape 客户端身份验证扩展。 |
-pe | 将私钥标记为可导出。 |
-r | 创建自签名证书 |
-scSubjectCertFile | 包含要使用的现有主题公钥的证书文件名。 |
-skSubjectKey | 保存私钥的主题密钥容器的位置。 如果密钥容器不存在,则将创建一个。 如果既没有使用 -sk 选项,也没有使用 -sv 选项,则默认创建并使用默认密钥容器。 |
-skySubjectKeySpec | 主题的密钥规范。 SubjectKeySpec 必须是三个可能值之一:
|
-spSubjectProviderName | 主体的 CryptoAPI 提供程序。 默认为用户的提供程序。 有关 CryptoAPI 提供程序的信息,请参阅 CryptoAPI 2.0 文档。 |
-srSubjectCertStoreLocation | 主体证书存储的注册表位置。 SubjectCertStoreLocation 必须是 LocalMachine(注册表项 HKEY_LOCAL_MACHINE)或 CurrentUser(注册表项 HKEY_CURRENT_USER)。 默认值为 CurrentUser。 |
-ssSubjectCertStoreName | 存储生成证书的主体证书存储空间的名称。 |
-svSubjectKeyFile | 主体的 .pvk 文件的名称。 如果既没有使用 -sk 选项,也没有使用 -sv 选项,则默认创建并使用默认密钥容器。 |
-synSubjectProviderType | 主体的 CryptoAPI 提供程序类型。 默认为 PROV_RSA_FULL。 有关 CryptoAPI 提供程序类型的信息,请参阅 CryptoAPI 2.0 文档。 |
-#SerialNumber | 证书序列号。 最大值为 2^31。 默认值是由工具生成的一个值,该值保证是唯一的。 |
-$CertificateAuthority | 证书颁发机构的类型。 CertificateAuthority 必须设置为 商业(供商业软件发布者使用的证书)或个人(供单个软件发布者使用的证书)。 |
-? | 显示基本选项。 |
-! | 显示扩展选项。 |
注意
如果在 Internet Explorer 版本 4.0 或更高版本中使用 -sky 密钥规范选项,该规范必须与私钥文件或私钥容器指示的密钥规范相匹配。 如果未使用密钥规范选项,将使用私钥文件或私钥容器指示的密钥规范。 如果密钥容器中有多个密钥规范,MakeCert 将首先尝试使用 AT_SIGNATURE 密钥规范。 如果失败,MakeCert 将尝试使用 AT_KEYEXCHANGE。 由于大多数用户都有 AT_SIGNATURE 密钥或 AT_KEYEXCHANGE 密钥,因此在大多数情况下不需要使用此选项。
以下选项仅适用于软件发布者证书 (SPC) 文件和私钥技术。
SPC 和私钥选项 | 说明 |
---|---|
-icIssuerCertFile | 颁发者证书的位置。 |
-ikIssuerKey | 颁发者密钥容器的位置。 默认值为测试根密钥。 |
-ikyIssuerKeySpec | 颁发者的密钥规范,必须是三个可能值之一:
|
-ipIssuerProviderName | 颁发者的 CryptoAPI 提供程序。 默认为用户的提供程序。 有关 CryptoAPI 提供程序的信息,请参阅 CryptoAPI 2.0 文档。 |
-ivIssuerKeyFile | 颁发者的私钥文件。 默认值为测试根。 |
-iynIssuerProviderType | 颁发者的 CryptoAPI 提供程序类型。 默认为 PROV_RSA_FULL。 有关 CryptoAPI 提供程序类型的信息,请参阅 CryptoAPI 2.0 文档。 |
注意
如果在 Internet Explorer 4.0 或更高版本中使用 -iky 密钥规范选项,该规范必须与私钥文件或私钥容器指示的密钥规范相匹配。 如果未使用密钥规范选项,将使用私钥文件或私钥容器指示的密钥规范。 如果密钥容器中有多个密钥规范,MakeCert 将首先尝试使用 AT_SIGNATURE 密钥规范。 如果失败,MakeCert 将尝试使用 AT_KEYEXCHANGE。 由于大多数用户都有 AT_SIGNATURE 密钥或 AT_KEYEXCHANGE 密钥,因此在大多数情况下不需要使用此选项。
以下选项仅适用于证书存储技术。
证书存储选项 | 说明 |
---|---|
-ic IssuerCertFile | 包含签发者证书的文件。 MakeCert 将在证书存储中搜索完全匹配的证书。 |
-in IssuerNameString | 颁发者证书的公用名。 MakeCert 将在证书存储中搜索其公用名称包括 IssuerNameString 的证书。 |
-ir IssuerCertStoreLocation | 颁发者的证书存储的注册表位置。 IssuerCertStoreLocation 必须是 LocalMachine(注册表项 HKEY_LOCAL_MACHINE)或 CurrentUser(注册表项 HKEY_CURRENT_USER)。 默认值为 CurrentUser。 |
-is IssuerCertStoreName | 颁发者的证书存储,其中包括颁发者的证书及其关联的私钥信息。 如果存储中有多个证书,用户必须通过使用 -ic 或 -in 选项对其进行唯一标识。 如果证书存储中的证书没有唯一标识,MakeCert 将失败。 |