MakeCert

注意

已弃用 Makecert。 若要创建自签名证书,请使用 Powershell Cmdlet New-SelfSignedCertificate

 

MakeCert 工具创建由测试根密钥或其他指定密钥签名的 X.509 证书,该证书将你的姓名绑定到密钥对的公共部分。 证书将保存到文件、系统证书存储或同时保存到两者中。 该工具安装在 Microsoft Windows 软件开发工具包的 \Bin 文件夹中, (SDK) 安装路径。

MakeCert 工具使用以下命令语法:

MakeCert [BasicOptions|ExtendedOptions] OutputFile

OutputFile 是将在其中写入证书的文件的名称。 如果不将证书写入文件,则可以省略 OutputFile

选项

MakeCert 包括基本选项和扩展选项。 基本选项是最常用于创建证书的选项。 扩展选项提供更多的灵活性。

MakeCert 的选项也分为三个功能组:

  • 仅适用于证书存储技术的基本选项。
  • 特定于 SPC 文件和私钥技术的扩展选项。
  • 适用于 SPC 文件、私钥和证书存储技术的扩展选项。

下表中提供的选项只能与 Internet Explorer 4.0 或更高版本一起使用。

基本选项 说明
-a算法 哈希 算法。 必须设置为 SHA-1MD5 (默认) 。 有关 MD5 的信息,请参阅 MD5
-BDateStart 证书首次生效的日期。 默认值为创建证书时。 DateStart 的格式为 mm/dd/yyyy。
-cyCertificateTypes 证书类型。 对于最终实体,CertificateType 可以结束,也可以是证书颁发机构的颁发机构
-eDateEnd 有效期结束的日期。 默认值为 2039 年。
-ekuOID1OID2 ... 将一个或多个逗号分隔的 增强型密钥使用对象标识符 的列表 (OID) 插入证书。 例如, -eku 1.3.6.1.5.5.7.3.2 插入客户端身份验证 OID。 有关允许的 OID 的定义,请参阅 CryptoAPI 2.0 中的 Wincrypt.h 文件。
-HNumChildren 此证书下方树的最大高度。
-我PolicyLink 指向 SPC 代理策略信息的链接 (例如 URL) 。
-mnMonths 有效期的持续时间。
-nName 发布者证书的名称。 此名称必须符合 X.500 标准。 最简单的方法是使用“CN=MyName”格式。 例如:-n“CN=Test”。
-nscp 应包含 Netscape 客户端身份验证扩展。
-体育 将私钥标记为可导出。
-r 创建自签名证书。
-ScSubjectCertFile 证书文件名,其中包含要使用的现有使用者公钥。
-SkSubjectKey 保存 私钥的使用者密钥容器的位置。 如果密钥容器不存在,则将创建一个。 如果未使用 -sk-sv 选项,则默认创建并使用默认密钥容器。
-天空SubjectKeySpec 使用者的密钥规范。 SubjectKeySpec 必须是三个可能值之一:
  • 签名 (AT_SIGNATURE密钥规范)
  • Exchange (AT_KEYEXCHANGE 密钥规范)
  • 整数,例如 3
有关详细信息,请参阅此表后面的说明。
-SpSubjectProviderName 主题的 CryptoAPI 提供程序。 默认值为用户的提供程序。 有关 CryptoAPI 提供程序的信息,请参阅 CryptoAPI 2.0 文档。
-锶SubjectCertStoreLocation 使用者证书存储的注册表位置。 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 颁发者证书的位置。
-益IssuerKey 颁发者的密钥容器的位置。 默认值为测试根键。
-ikyIssuerKeySpec 颁发者的密钥规范,必须是三个可能值之一:
  • 签名 (AT_SIGNATURE密钥规范)
  • Exchange (AT_KEYEXCHANGE密钥规范)
  • 整数,例如 3
有关详细信息,请参阅此表后面的说明。
-IpIssuerProviderName 颁发者的 CryptoAPI 提供程序。 默认值为用户的提供程序。 有关 CryptoAPI 提供程序的信息,请参阅 CryptoAPI 2.0 文档。
-四IssuerKeyFile 颁发者的私钥文件。 默认值为测试根。
-iynIssuerProviderType 颁发者的 CryptoAPI 提供程序类型。 默认值为 PROV_RSA_FULL。 有关 CryptoAPI 提供程序类型的信息,请参阅 CryptoAPI 2.0 文档。

 

注意

如果在 Internet Explorer 4.0 或更高版本中使用 -iky 密钥规范选项,则规范必须与私钥文件或私钥容器指示的密钥规范匹配。 如果未使用密钥规范选项,将使用私钥文件或私钥容器指示的密钥规范。 如果密钥容器中有多个密钥规范,MakeCert 将首先尝试使用AT_SIGNATURE密钥规范。 如果失败,MakeCert 将尝试使用AT_KEYEXCHANGE。 由于大多数用户具有AT_SIGNATURE密钥或AT_KEYEXCHANGE密钥,因此在大多数情况下不需要使用此选项。

 

以下选项仅适用于 证书存储 技术。

证书存储选项 说明
-icIssuerCertFile 包含颁发者证书的文件。 MakeCert 将在证书存储中搜索完全匹配的证书。
-inIssuerNameString 颁发者证书的公用名。 MakeCert 将在证书存储中搜索公用名包括 IssuerNameString 的证书。
-irIssuerCertStoreLocation 颁发者的证书存储的注册表位置。 IssuerCertStoreLocation 必须是 LocalMachine (注册表项HKEY_LOCAL_MACHINE) 或 CurrentUser (注册表项HKEY_CURRENT_USER) 。 CurrentUser 为默认值。
-isIssuerCertStoreName 颁发者的证书存储,其中包括颁发者的证书及其关联的私钥信息。 如果存储中有多个证书,则用户必须使用 -ic-in 选项对其进行唯一标识。 如果证书存储中的证书未唯一标识,则 MakeCert 将失败。