菜鸟科技网

certmgr.exe命令如何使用?

下面我将为你详细解释 certmgr.exe 的用法,包括其不同模式、常用命令和实例。

certmgr.exe命令如何使用?-图1
(图片来源网络,侵删)

什么是 certmgr.exe

certmgr.exe 是一个证书管理器命令行工具,它的核心功能是管理证书存储区(Certificate Stores)中的证书,证书存储区就像是存放数字证书的“文件夹”或“保险箱”。

certmgr.exe 的三种主要模式

certmgr.exe 的行为取决于你提供的参数,主要有三种模式:

  1. /s 模式(默认模式,用于查看和删除):这是最常用的模式,用于与系统或用户的证书存储区进行交互。
  2. /add 模式(用于导入证书):将证书文件(如 .cer, .pfx)导入到指定的证书存储区。
  3. /del 模式(用于删除证书):从证书存储区中删除指定的证书。

详细命令语法与实例

/s - 查看、删除系统/用户存储区中的证书

这是默认模式,如果你只提供存储区名称,它会列出该存储区中的所有证书。

基本语法:

certmgr.exe命令如何使用?-图2
(图片来源网络,侵删)
certmgr.exe [-s] [-user | -enterprise | -machine] [-v] [-c] [-n name] [-sha1 thumbprint] [-store storename]

常用参数:

  • -s: 指定操作针对证书存储区,如果省略,且没有 /add/del,这也是默认行为。
  • -user: 指定操作针对当前用户的证书存储区。
  • -machine: 指定操作针对本地计算机的证书存储区(需要管理员权限)。
  • -enterprise: 指定操作针对 Active Directory 企业证书存储区(需要域管理员权限)。
  • -v: 详细输出,显示证书的详细信息(如颁发者、有效期、指纹等)。
  • -c: 仅显示自签名证书。
  • -n "name": 指定要操作的证书的“友好名称”。
  • -sha1 thumbprint: 指定要操作的证书的 SHA1 指纹(最精确的查找方式)。
  • -store storename: 指定证书存储区的名称。这是最关键的参数。

常用证书存储区名称:

  • My: 个人(也称为“我的”),存放你自己的私钥和证书。
  • Root: 受信任的根证书颁发机构,存放受信任的CA证书。
  • CA: 中级证书颁发机构。
  • TrustedPublisher: 受信任的发布者。
  • TrustedPeople: 受信任的人员。

实例 1:列出“受信任的根证书颁发机构”中的所有证书

certmgr.exe -s -user -store Root
  • -s: 操作存储区
  • -user: 当前用户存储区
  • -store Root: 指定“受信任的根证书颁发机构”存储区

实例 2:以详细形式查看“个人”存储区中所有证书

certmgr.exe命令如何使用?-图3
(图片来源网络,侵删)
certmgr.exe -s -user -store My -v
  • -v: 显示详细信息。

实例 3:删除“个人”存储区中“友好名称”为 "MyTestCert" 的证书

certmgr.exe -s -user -store My -n "MyTestCert" -del
  • -n "MyTestCert": 指定友好名称。
  • -del: 执行删除操作。

实例 4:根据指纹删除“本地计算机”的“中级证书颁发机构”中的一个证书 (需要以管理员身份运行 CMD)

certmgr.exe -s -machine -store CA -sha1 "12 34 56 78 90 AB CD EF 12 34 56 78 90 AB CD EF 12 34 56 78" -del
  • -machine: 本地计算机存储区。
  • -sha1 ...: 使用证书的指纹进行精确定位。

/add - 从文件导入证书

此模式用于将证书文件(如 .cer, .crt, .p7b, .pfx)添加到证书存储区。

基本语法:

certmgr.exe /add filename.cer [-s | -user | -machine] [-store storename] [-all] [-p password]

常用参数:

  • /add filename.cer: 指定要导入的证书文件名。
  • -p password: 如果导入的是 PFX 文件(包含私钥),需要提供密码。
  • -all: 当导入一个包含多个证书的文件(如 P7B)时,导入所有证书。

实例 5:将 my_certificate.cer 文件导入到当前用户的“受信任的根证书颁发机构”

certmgr.exe /add C:\path\to\my_certificate.cer -s -user -store Root

实例 6:将包含私钥的 my_private_key.pfx 文件导入到当前用户的“个人”存储区

certmgr.exe /add C:\path\to\my_private_key.pfx -s -user -store My -p "your_pfx_password"

/del - 从存储区删除证书(与 /s 模式类似)

虽然 /s -del 也能删除,但 /del 模式是另一种写法,功能上基本一致。

基本语法:

certmgr.exe /del [-s] [-user | -machine] [-sha1 thumbprint] [-n name] [-store storename]

参数与 /s 模式下相同。

实例 7:使用 /del 模式删除证书

certmgr.exe /del -s -user -store My -n "AnotherCert"

certmgr.msc 的区别

特性 certmgr.exe (命令行) certmgr.msc (管理单元)
类型 命令行工具 图形化用户界面
使用场景 自动化脚本、批量操作、远程服务器管理 日常手动管理、查看、导入、导出、设置信任
灵活性 高度可编程,适合集成到脚本中 直观易用,无需记忆命令
启动方式 在命令提示符或 PowerShell 中直接运行 certmgr.msc 在命令提示符或 PowerShell 中直接运行 certmgr.exe

  • 想要点击鼠标管理证书?用 certmgr.msc
  • 想要写个脚本自动管理证书?用 certmgr.exe

常见问题与技巧

Q: 如何找到证书的指纹或友好名称? A: 使用 certmgr.exe -v 命令列出证书,在输出中可以清楚地看到“颁发者”、“主题”、“指纹”和“友好名称”。

Q: 如何以管理员身份运行? A: 在开始菜单搜索 "cmd",右键点击“命令提示符”,选择“以管理员身份运行”,执行 -machine 相关操作时必须这样做。

Q: 找不到 certmgr.exe 怎么办? A: certmgr.exe 通常包含在 Windows SDKVisual Studio 的安装包中,如果你没有安装这些,可以使用系统自带的 PowerShell 命令作为替代方案:

  • 查看证书:
    Get-ChildItem -Path Cert:\LocalMachine\Root
    Get-ChildItem -Path Cert:\CurrentUser\My
  • 导入证书:
    Import-Certificate -FilePath "C:\path\to\my_certificate.cer" -CertStoreLocation Cert:\LocalMachine\Root
    Import-PfxCertificate -FilePath "C:\path\to\my_private_key.pfx" -CertStoreLocation Cert:\CurrentUser\My -Password (Read-Host -AsSecureString "Enter PFX password")
  • 删除证书:
    # 先找到证书,再删除
    $cert = Get-ChildItem -Path Cert:\CurrentUser\My | Where-Object { $_.Subject -like "*MyTestCert*" }
    Remove-Item -Path $cert.PSPath

希望这份详细的指南能帮助你熟练掌握 certmgr.exe 命令!

分享:
扫描分享到社交APP
上一篇
下一篇