Certmgr.exe(证书管理器工具)

更新:2011 年 4 月

证书管理器工具 (Certmgr.exe) 管理证书、证书信任列表 (CTL) 和证书吊销列表 (CRL)。

注意注意

“证书管理器”工具 (Certmgr.exe) 是一个命令行实用程序,而“证书” (Certmgr.msc) 则是 Microsoft 管理控制台 (MMC) 管理单元。由于 Certmgr.msc 通常是在 Windows 系统目录中找到的,因此在命令行上输入 certmgr 可加载证书 MMC 管理单元,即使您已打开 Visual Studio 命令提示符。出现这种情况的原因是,PATH 环境变量中的管理单元路径在证书管理器工具的路径之前。如果您遇到此问题,可以通过指定可执行文件的路径执行 Certmgr.exe 命令。

安装 Visual Studio 和 Windows SDK 时会自动安装此工具。 要运行工具,我们建议您使用 Visual Studio 命令提示符或 Windows SDK 命令提示符(也称 CMD Shell)。 您可以使用这些实用程序轻松运行工具,而不需要导航到安装文件夹。 有关更多信息,请参见 Visual Studio 和 Windows SDK 命令提示

  • 如果您的计算机上已安装了 Visual Studio:在任务栏上依次单击 Start、All Programs、Visual Studio、Visual Studio Tools、Visual Studio Command Prompt。

    - 或 -

    如果您的计算机上已安装了 Windows SDK:在任务栏上依次单击 Start、All Programs、Windows SDK 文件夹和 Command Prompt(或CMD Shell)。

  • 在命令提示处,键入下列命令:

certmgr [/add | /del | /put] [options]
[/s[/r registryLocation]] [sourceStorename]
[/s[/r registryLocation]] [destinationStorename]

参数

参数

说明

sourceStorename

包含现有证书、CTL 或 要添加、删除、保存或显示的CRL的证书存储区。 这可以是一个存储文件,也可以是一个系统存储。

destinationStorename

输出证书存储区或文件。

选项

说明

/add

将证书、CTL 和 CRL 添加到证书存储区中。

/all

当与 /add 一起使用时添加所有项。 当与 /del 一起使用时删除所有项。 不带 /add/del 选项使用时显示所有项。 /all 选项不能与 /put 一起使用。

/c

当与 /add 一起使用时添加证书。 当与 /del 一起使用时删除证书。 当与 /put 一起使用时保存证书。 不带 /add/del/put 选项使用时显示证书。

/CRL

当与 /add 一起使用时添加 CRL。 当与 /del 一起使用时删除 CRL。 使用 /put 后,保存 CRL。 不带 /add/del/put 选项使用时显示 CRL。

/CTL

当与 /add 一起使用时添加 CTL。 当与 /del 一起使用时删除 CTL。 使用 /put 后,保存 CTL。 不带 /add/del/put 选项使用时显示 CTL。

/del

从证书存储区中删除证书、CTL 和 CRL。

/e encodingType

指定证书编码类型。 默认值为 X509_ASN_ENCODING。

/f dwFlags

指定存储区打开标志。 这是传递到 CertOpenStoredwFlags 参数。 默认值为 CERT_SYSTEM_STORE_CURRENT_USER。 仅当使用 /y 选项时才考虑此选项。

/h[elp]

显示该工具的命令语法和选项。

/n nam

指定要添加、删除或保存的证书的公共名。 此选项只能用于证书,不能用于 CTL 或 CRL。

/put

将证书存储区中的 X.509 证书、CTL 或 CRL 保存到文件。 文件以 X.509 格式保存。 /7 选项可与 /put 选项一起使用以 PKCS #7 格式保存文件。 /put 选项后面必须有 /c/CTL/CRL/all 选项不能与 /put 一起使用。

/r 位置

标识系统存储区的注册表位置。 仅当指定 /s 选项时才考虑此选项。 ___location 必须是以下项之一:

  • currentUser 指示证书存储区在 HKEY_CURRENT_USER 键下。 这是默认值。

  • localMachine 指示证书存储区在 HKEY_LOCAL_MACHINE 键下。

/s

指示证书存储区是系统存储区。 如果未指定此选项,则会将存储区视为 StoreFile

/sha1 sha1Hash

指定要添加、删除或保存的证书、CTL 或 CRL 的 SHA1 哈希。

/v

指定详细模式;显示有关证书、CTL 和 CRL 的详细信息。 此选项不能与 /add/del/put 选项一起使用。

/y provider

指定存储提供程序名称。

/7

将目标存储区保存为 PKCS #7 对象。

/?

显示该工具的命令语法和选项。

备注

Certmgr.exe 执行下列基本功能:

  • 将证书、CTL 和 CRL 显示到控制台。

  • 将证书、CTL 和 CRL 添加到证书存储区中。

  • 从证书存储区中删除证书、CTL 和 CRL。

  • 将证书存储区中的 X.509 证书、CTL 或 CRL 保存到文件。

Certmgr.exe 使用两类证书存储区:StoreFile 和系统存储区。 不必指定证书存储区的类型;Certmgr.exe 能够识别存储区类型并执行适当的操作。

运行 Certmgr.exe 时若不指定任何选项,则将启动一个 certmgr.msc 管理单元来帮助执行也可通过命令行访问的证书管理任务。 该 GUI 提供一个导入向导,此向导将证书、CTL 和 CRL 从磁盘复制到证书存储区中。

有关证书的更多信息,请参见 Microsoft Platform SDK 文档中的“About CryptoAPI”部分。

示例

下列命令显示一个名为 my 且包含详细输出的默认系统存储区。

certmgr /v /s my

下面的命令将名为 myFile.ext 的文件中的所有证书添加到一个名为 newFile.ext 的新文件中。

certmgr /add /all /c myFile.ext newFile.ext

以下命令将名为 testcert.cer 文件中的证书添加到 my 系统存储区内。

certmgr /add /c testcert.cer /s my

以下命令将名为 TrustedCert.cer 文件中的证书添加到根证书存储区内。

certmgr /c /add TrustedCert.cer /s root

下面的命令将 my 系统存储区中具有公共名 myCert 的证书保存到一个名为 newCert.cer 的文件中。

certmgr /add /c /n myCert /s my newCert.cer

下面的命令删除 my 系统存储区中的所有 CTL,并将结果存储区保存到一个名为 newStore.str 的文件中。

certmgr /del /all /ctl /s my newStore.str

下面的命令将 my 系统存储区中的一个证书保存到 newFile 文件中。 将提示您输入 my 中要放在 newFile 中的证书号码。

certmgr /put /c /s my newFile

请参见

参考

Makecert.exe(证书创建工具)

Visual Studio 和 Windows SDK 命令提示

其他资源

.NET Framework 工具

修订记录

Date

修订记录

原因

2011 年 4 月

添加了有关使用 Visual Studio 和 Windows SDK 命令提示符的信息。

信息补充。

2010 年 5 月

最新的语法以及添加的一些示例。

客户反馈