Windows 中的 certutil 命令是一个用于证书操作和证书服务的命令行工具。它提供了许多与证书和证书服务相关的功能,包括管理证书、证书链、证书存储以及执行各种加密、解密和签名操作等certreq 是一个命令行工具,用于申请和管理证书请求(Certificate Request)
这些工具的功能对比,以帮助你了解它们之间的差异:
| 工具名称 | 位置 | 功能描述 |
|---|---|---|
| CertEnrollCtrl.exe | C:\Windows\System32\CertEnrollCtrl.exe |
主要用于与证书注册服务交互,处理证书的注册、分配和验证。一般用于企业环境中的证书管理,尤其与Active Directory证书服务(ADCS)集成。 |
| certlm.msc | C:\Windows\System32\certlm.msc |
打开证书管理控制台(证书管理器),用于查看和管理计算机上的证书存储。适用于本地计算机证书的安装、导入、导出、删除等操作。 |
| certmgr.msc | C:\Windows\System32\certmgr.msc |
打开证书管理控制台(证书管理器),用于查看和管理当前用户的证书存储。常用于用户证书的安装、导入、导出、删除等操作。 |
| certoc.exe | C:\Windows\System32\certoc.exe |
用于证书的请求、撤销等操作,通常用于命令行环境中,处理自动化证书管理任务。它在处理PKI环境中的证书时尤其有用。 |
| certreq.exe | C:\Windows\System32\certreq.exe |
用于生成证书请求(CSR),提交证书请求到证书颁发机构(CA),并安装签发的证书。支持证书请求的生成、提交和安装等操作。 |
| certutil.exe | C:\Windows\System32\certutil.exe |
是一个命令行工具,用于执行各种证书管理任务,如证书安装、撤销、查看证书信息、验证证书链等。非常适用于Windows的证书管理。 |
主要区别:
- CertEnrollCtrl.exe 主要与企业级证书管理服务(如Active Directory证书服务)相关,通常用于企业环境中的证书注册和管理。
- certlm.msc 和 certmgr.msc 是图形化工具,分别用于管理计算机证书和当前用户证书。
- certoc.exe 和 certreq.exe 主要用于处理证书请求和撤销操作,特别是在PKI环境中。
- certutil.exe 是一个通用的命令行工具,支持多种证书管理功能,适用于各种证书相关操作。

PS C:\Users\Administrator> certreq /?
用法:
CertReq -?
CertReq [-v] -?
CertReq [-Command] -?
CertReq [-Submit] [Options] [RequestFileIn [CertFileOut [CertChainFileOut [FullResponseFileOut]]]]
将申请提交到证书颁发机构
选项:
-attrib AttributeString
-binary
-PolicyServer PolicyServer
-config ConfigString
-Anonymous
-Kerberos
-ClientCertificate ClientCertId
-UserName UserName
-p Password
-crl
-rpc
-AdminForceMachine
-RenewOnBehalfOf
-NoChallenge
CertReq -Retrieve [Options] RequestId [CertFileOut [CertChainFileOut [FullResponseFileOut]]]
检索来自证书颁发机构的对上一次申请的响应。
选项:
-binary
-PolicyServer PolicyServer
-config ConfigString
-Anonymous
-Kerberos
-ClientCertificate ClientCertId
-UserName UserName
-p Password
-crl
-rpc
-AdminForceMachine
CertReq -New [Options] [PolicyFileIn [RequestFileOut]]
按 PolicyFileIn 创建一个新申请
选项:
-attrib AttributeString
-binary
-cert CertId
-PolicyServer PolicyServer
-config ConfigString
-Anonymous
-Kerberos
-ClientCertificate ClientCertId
-UserName UserName
-p Password
-pin Pin
-user
-machine
-xchg ExchangeCertFile
CertReq -Accept [Options] [CertChainFileIn | FullResponseFileIn | CertFileIn]
接受和安装到上一次新申请的响应。
选项:
-user
-machine
-pin Pin
CertReq -Policy [Options] [RequestFileIn [PolicyFileIn [RequestFileOut [PKCS10FileOut]]]]
从一个已有的 CA 证书或已有的申请构造交叉
证书或合格的从属申请。
选项:
-attrib AttributeString
-binary
-cert CertId
-PolicyServer PolicyServer
-Anonymous
-Kerberos
-ClientCertificate ClientCertId
-UserName UserName
-p Password
-pin Pin
-noEKU
-AlternateSignatureAlgorithm
-HashAlgorithm HashAlgorithm
CertReq -Sign [Options] [RequestFileIn [RequestFileOut]]
为使用注册代理证书申请或
合格的从属签名证书签名。
选项:
-binary
-cert CertId
-PolicyServer PolicyServer
-Anonymous
-Kerberos
-ClientCertificate ClientCertId
-UserName UserName
-p Password
-pin Pin
-crl
-noEKU
-HashAlgorithm HashAlgorithm
CertReq -Enroll [选项] TemplateName
CertReq -Enroll -cert CertId [选项] Renew [ReuseKeys]
注册或续订证书。
选项:
-PolicyServer PolicyServer
-user
-machine
-pin Pin
CertReq -EnrollAIK [Options] [KeyContainerName]
注册 AIK 证书。
选项:
-config
CertReq -EnrollCredGuardCert [Options] TemplateName [ExtensionInfFile]
注册计算机 Credential Guard 证书。
选项:
-config
CertReq -EnrollLogon [Options]
通过 ADFS 注册 Hello 企业版登录证书。
选项:
-q
CertReq -Post [Options]
发布 http 请求。
选项:
-attrib AttributeString
-config URL
PS C:\Users\Administrator> certutil /?
动词:
-dump -- 转储配置信息或文件
-dumpPFX -- 转储 PFX 结构
-asn -- 分析 ASN.1 文件
-decodehex -- 解码十六进制编码的文件
-decode -- 解码 Base64 编码的文件
-encode -- 将文件编码为 Base64
-deny -- 拒绝挂起的申请
-resubmit -- 重新提交挂起的申请
-setattributes -- 为挂起申请设置属性
-setextension -- 为挂起申请设置扩展
-revoke -- 吊销证书
-isvalid -- 显示当前证书部署
-getconfig -- 获取默认配置字符串
-ping -- Ping Active Directory 证书服务申请接口
-pingadmin -- Ping Active Directory 证书服务管理接口
-CAInfo -- 显示 CA 信息
-ca.cert -- 检索 CA 的证书
-ca.chain -- 检索 CA 的证书链
-GetCRL -- 获取 CRL
-CRL -- 发布新的 CRL [或仅增量 CRL]
-shutdown -- 关闭 Active Directory 证书服务
-installCert -- 安装证书颁发机构证书
-renewCert -- 续订证书颁发机构证书
-schema -- 转储证书架构
-view -- 转储证书视图
-db -- 转储原始数据库
-deleterow -- 删除服务器数据库行
-backup -- 备份 Active Directory 证书服务
-backupDB -- 备份 Active Directory 证书服务数据库
-backupKey -- 备份 Active Directory 证书服务证书和私钥
-restore -- 还原 Active Directory 证书服务
-restoreDB -- 还原 Active Directory 证书服务数据库
-restoreKey -- 还原 Active Directory 证书服务证书和私钥
-importPFX -- 导入证书和私钥
-dynamicfilelist -- 显示动态文件列表
-databaselocations -- 显示数据库位置
-hashfile -- 通过文件生成并显示加密哈希
-store -- 转储证书存储
-enumstore -- 枚举证书存储
-addstore -- 将证书添加到存储
-delstore -- 从存储删除证书
-verifystore -- 验证存储中的证书
-repairstore -- 修复密钥关联,或者更新证书属性或密钥安全描述符
-viewstore -- 转储证书存储
-viewdelstore -- 从存储删除证书
-UI -- 调用 CryptUI
-attest -- 验证密钥证明请求
-dsPublish -- 将证书或 CRL 发布到 Active Directory
-ADTemplate -- 显示 AD 模板
-Template -- 显示注册策略模板
-TemplateCAs -- 显示模板的 CA
-CATemplates -- 显示 CA 的模板
-SetCASites -- 管理 CA 的站点名称
-enrollmentServerURL -- 显示、添加或删除与 CA 关联的注册服务器 URL
-ADCA -- 显示 AD CA
-CA -- 显示注册策略 CA
-Policy -- 显示注册策略
-PolicyCache -- 显示或删除注册策略缓存项目
-CredStore -- 显示、添加或删除凭据存储项目
-InstallDefaultTemplates -- 安装默认的证书模板
-URLCache -- 显示或删除 URL 缓存项目
-pulse -- 以脉冲方式执行自动注册事件或 NGC 任务
-MachineInfo -- 显示 Active Directory 计算机对象信息
-DCInfo -- 显示域控制器信息
-EntInfo -- 显示企业信息
-TCAInfo -- 显示 CA 信息
-SCInfo -- 显示智能卡信息
-SCRoots -- 管理智能卡根证书
-DeleteHelloContainer -- 删除 Hello 登录容器。
** 在使用此选项后, 用户需要注销才能完成。**
-verifykeys -- 验证公/私钥集
-verify -- 验证证书,CRL 或链
-verifyCTL -- 验证 AuthRoot 或不允许的证书 CTL
-syncWithWU -- 与 Windows 更新同步
-generateSSTFromWU -- 通过 Windows 更新生成 SST
-generatePinRulesCTL -- 生成捆绑规则 CTL
-downloadOcsp -- 下载 OCSP 响应并写入目录
-generateHpkpHeader -- 使用指定文件或目录中的证书生成 HPKP 头
-flushCache -- 刷新选定进程(例如 lsass.exe)中的指定缓存
-addEccCurve -- 添加 ECC 曲线
-deleteEccCurve -- 删除 ECC 曲线
-displayEccCurve -- 显示 ECC 曲线
-sign -- 重新签名 CRL 或证书
-vroot -- 创建/删除 Web 虚拟根和文件共享
-vocsproot -- 创建/删除 OCSP Web Proxy 的 Web 虚拟根
-addEnrollmentServer -- 添加注册服务器应用程序
-deleteEnrollmentServer -- 删除注册服务器应用程序
-addPolicyServer -- 添加策略服务器应用程序
-deletePolicyServer -- 删除策略服务器应用程序
-oid -- 显示 ObjectId 或设置显示名称
-error -- 显示错误代码消息文本
-getreg -- 显示注册表值
-setreg -- 设置注册表值
-delreg -- 删除注册表值
-ImportKMS -- 为密钥存档导入用户密钥和证书到服务器数据库
-ImportCert -- 将证书文件导入数据库
-GetKey -- 检索存档的私钥恢复 Blob,生成恢复脚本 或恢复存档的密钥
-RecoverKey -- 恢复存档的私钥
-MergePFX -- 合并 PFX 文件
-ConvertEPF -- 将 PFX 文件转换为 EPF 文件
-add-chain -- (-AddChain) 添加证书链
-add-pre-chain -- (-AddPrechain) 添加预植证书链
-get-sth -- (-GetSTH) 获取签名树头
-get-sth-consistency -- (-GetSTHConsistency) 获取签名树头更改
-get-proof-by-hash -- (-GetProofByHash) 获取哈希证明
-get-entries -- (-GetEntries) 获取项
-get-roots -- (-GetRoots) 获取根
-get-entry-and-proof -- (-GetEntryAndProof) 获取项和证明
-VerifyCT -- 验证证书 SCT
-? -- 显示该用法消息
CertUtil -? -- 显示动词列表(命名列表)
CertUtil -dump -? -- 显示 "dump" 动词的帮助文本
CertUtil -v -? -- 显示所有动词的所有帮助文本
CertUtil: -? 命令成功完成。
CertReq 命令与 CertUtil 命令的区别对比表格:
| 功能 | CertReq 命令 | CertUtil 命令 |
|---|---|---|
| 主要用途 | 用于生成、提交、检索和接受证书请求 | 用于管理证书存储、证书吊销、证书请求和证书链验证等操作 |
| 证书请求 | 用于生成和提交证书请求 | 不支持直接生成证书请求(通过 certreq 生成请求后提交) |
| 提交证书请求 | 支持提交证书请求至 CA | 不支持直接提交证书请求,通常与 CertReq 一起使用 |
| 证书安装 | 支持接受和安装由 CA 返回的证书 | 支持安装证书到本地证书存储 |
| 证书存储管理 | 不支持证书存储管理 | 支持证书存储管理,能够显示、列出、删除证书 |
| 证书吊销 | 不支持吊销证书 | 支持证书吊销操作,如吊销证书、查询证书吊销列表 |
| 证书链验证 | 不支持证书链验证 | 支持证书链验证,可以验证证书的完整性和信任链 |
| 证书导出 | 不支持证书导出 | 支持证书导出功能,可以导出证书及私钥(需要配合其他工具) |
| 证书信息查询 | 不支持证书详细信息查询 | 支持查询证书的详细信息、证书状态、证书链等 |
| 支持批量操作 | 支持批量证书请求提交和证书安装 | 支持批量证书导入、导出、删除等操作 |
| 错误诊断与调试 | 支持详细输出和调试模式,用于提交证书请求时的错误诊断 | 支持调试证书操作,提供命令输出日志用于分析证书管理问题 |
| 适用场景 | 主要用于证书请求的自动化和提交 | 主要用于证书存储管理、验证、吊销以及证书链分析等管理功能 |
| 高级功能 | 支持自定义证书请求的属性,如 SAN、密钥用途等 | 提供多种证书管理功能,如证书存储管理、证书吊销列表、证书链验证等 |
| 常用命令示例 | CertReq -New request.inf my_request.req |
CertUtil -store mycertstore 或 CertUtil -verify mycert.crt |
- CertReq 主要用于生成、提交和处理证书请求,在证书的生成与提交过程中发挥重要作用。
- CertUtil 则是证书管理的工具,涵盖证书存储管理、验证、吊销等功能,适用于证书生命周期的管理和查询。
这两者通常是配合使用的,CertReq 用于证书请求的创建和提交,CertUtil 用于证书的验证、管理和导出等操作。

| 命令 | 描述 | 示例应用场景与命令示例 |
|---|---|---|
| CertUtil -dump | 转储配置信息或文件 | 场景:查看证书配置或文件详细信息。 示例:CertUtil -dump mycert.cer 用于显示证书的详细信息。 |
| CertUtil -dumpPFX | 转储 PFX 结构 | 场景:导出 PFX 文件中的证书及其私钥。 示例:CertUtil -dumpPFX mycert.pfx 转储 PFX 文件的内容。 |
| CertUtil -asn | 分析 ASN.1 文件 | 场景:分析证书的 ASN.1 编码格式。 示例:CertUtil -asn mycert.der 将 DER 格式证书分析为 ASN.1 编码。 |
| CertUtil -decodehex | 解码十六进制编码的文件 | 场景:将十六进制编码的证书文件转回原始格式。 示例:CertUtil -decodehex encoded_cert.hex 解码十六进制编码的证书。 |
| CertUtil -decode | 解码 Base64 编码的文件 | 场景:将 Base64 编码的证书文件还原为原始格式。 示例:CertUtil -decode encoded_cert.b64 解码 Base64 编码证书。 |
| CertUtil -encode | 将文件编码为 Base64 | 场景:将证书或私钥文件转换为 Base64 格式。 示例:CertUtil -encode mycert.pem 将证书编码为 Base64。 |
| CertUtil -deny | 拒绝挂起的申请 | 场景:拒绝证书请求。 示例:CertUtil -deny 1234 拒绝编号为 1234 的证书申请。 |
| CertUtil -resubmit | 重新提交挂起的申请 | 场景:重新提交被挂起的证书申请。 示例:CertUtil -resubmit 1234 重新提交编号为 1234 的证书申请。 |
| CertUtil -setattributes | 为挂起申请设置属性 | 场景:为待处理的证书申请设置属性。 示例:CertUtil -setattributes 1234 -attrib "Subject=example" 为申请设置属性。 |
| CertUtil -setextension | 为挂起申请设置扩展 | 场景:为待处理的证书申请添加扩展。 示例:CertUtil -setextension 1234 -ext "KeyUsage=DigitalSignature"。 |
| CertUtil -revoke | 吊销证书 | 场景:撤销不再使用的证书。 示例:CertUtil -revoke mycert.cer 撤销名为 mycert.cer 的证书。 |
| CertUtil -isvalid | 显示当前证书部署 | 场景:检查证书是否有效并已正确部署。 示例:CertUtil -isvalid mycert.cer 检查证书有效性。 |
| CertUtil -getconfig | 获取默认配置字符串 | 场景:获取证书服务的当前配置。 示例:CertUtil -getconfig 获取当前配置的详细信息。 |
| CertUtil -ping | Ping Active Directory 证书服务申请接口 | 场景:检查与证书服务的连接状态。 示例:CertUtil -ping 测试连接证书服务的状态。 |
| CertUtil -pingadmin | Ping Active Directory 证书服务管理接口 | 场景:检查与证书服务管理接口的连接状态。 示例:CertUtil -pingadmin 测试连接证书服务管理接口的状态。 |
| CertUtil -CAInfo | 显示 CA 信息 | 场景:查看证书颁发机构 (CA) 的详细信息。 示例:CertUtil -CAInfo 查看 CA 信息。 |
| CertUtil -ca.cert | 检索 CA 的证书 | 场景:获取 CA 的证书用于验证和信任。 示例:CertUtil -ca.cert 获取证书颁发机构的证书。 |
| CertUtil -ca.chain | 检索 CA 的证书链 | 场景:查看证书颁发机构的证书链。 示例:CertUtil -ca.chain 获取 CA 的证书链。 |
| CertUtil -GetCRL | 获取 CRL | 场景:获取证书吊销列表 (CRL)。 示例:CertUtil -GetCRL 下载最新的 CRL 文件。 |
| CertUtil -CRL | 发布新的 CRL [或仅增量 CRL] | 场景:发布新的证书吊销列表。 示例:CertUtil -CRL 发布新的证书吊销列表。 |
| CertUtil -shutdown | 关闭 Active Directory 证书服务 | 场景:停止证书服务以进行维护。 示例:CertUtil -shutdown 关闭 Active Directory 证书服务。 |
| CertUtil -installCert | 安装证书颁发机构证书 | 场景:将证书颁发机构证书添加到受信任根证书存储。 示例:CertUtil -installCert ca_cert.pem 安装 CA 证书。 |
| CertUtil -renewCert | 续订证书颁发机构证书 | 场景:续订 CA 的证书以避免过期。 示例:CertUtil -renewCert 续订证书。 |
| CertUtil -schema | 转储证书架构 | 场景:查看证书架构的详细信息。 示例:CertUtil -schema 显示证书架构信息。 |
| CertUtil -view | 转储证书视图 | 场景:查看证书的详细视图。 示例:CertUtil -view mycert.cer 转储证书的视图信息。 |
| CertUtil -db | 转储原始数据库 | 场景:查看证书存储的原始数据库内容。 示例:CertUtil -db 转储数据库内容。 |
| CertUtil -deleterow | 删除服务器数据库行 | 场景:从证书存储中删除特定行。 示例:CertUtil -deleterow 1234 删除行编号为 1234 的数据。 |
| CertUtil -backup | 备份 Active Directory 证书服务 | 场景:备份证书服务数据库以防丢失。 示例:CertUtil -backup backup_file.bak 备份证书数据库。 |
| CertUtil -backupDB | 备份 Active Directory 证书服务数据库 | 场景:备份证书服务数据库。 示例:CertUtil -backupDB db_backup.bak 备份证书数据库。 |
| CertUtil -restore | 还原 Active Directory 证书服务 | 场景:恢复证书服务配置和数据。 示例:CertUtil -restore restore_file.bak 恢复证书服务。 |
| CertUtil -restoreDB | 还原 Active Directory 证书服务数据库 | 场景:恢复证书服务数据库。 示例:CertUtil -restoreDB db_restore.bak 恢复证书数据库。 |
| CertUtil -importPFX | 导入证书和私钥 | 场景:导入包含证书和私钥的 PFX 文件。 示例:CertUtil -importPFX mycert.pfx 导入 PFX 文件中的证书和私钥。 |
| 类别 | 命令 | 描述 |
|---|---|---|
| 证书配置与信息 | CertUtil -dump | 转储配置信息或文件 |
| CertUtil -dumpPFX | 转储 PFX 结构 | |
| CertUtil -asn | 分析 ASN.1 文件 | |
| CertUtil -getconfig | 获取默认配置字符串 | |
| CertUtil -ping | Ping Active Directory 证书服务申请接口 | |
| CertUtil -pingadmin | Ping Active Directory 证书服务管理接口 | |
| CertUtil -CAInfo | 显示 CA 信息 | |
| CertUtil -ca.cert | 检索 CA 的证书 | |
| CertUtil -ca.chain | 检索 CA 的证书链 | |
| CertUtil -GetCRL | 获取 CRL | |
| CertUtil -CRL | 发布新的 CRL 或增量 CRL | |
| CertUtil -schema | 转储证书架构 | |
| CertUtil -view | 转储证书视图 | |
| CertUtil -db | 转储原始数据库 | |
| 证书操作 | CertUtil -revoke | 吊销证书 |
| CertUtil -installCert | 安装证书颁发机构证书 | |
| CertUtil -renewCert | 续订证书颁发机构证书 | |
| CertUtil -store | 转储证书存储 | |
| CertUtil -enumstore | 枚举证书存储 | |
| CertUtil -addstore | 将证书添加到存储 | |
| CertUtil -delstore | 从存储删除证书 | |
| CertUtil -verifystore | 验证存储中的证书 | |
| 证书备份与恢复 | CertUtil -backup | 备份 Active Directory 证书服务 |
| CertUtil -backupDB | 备份 Active Directory 证书服务数据库 | |
| CertUtil -backupKey | 备份 Active Directory 证书服务证书和私钥 | |
| CertUtil -restore | 还原 Active Directory 证书服务 | |
| CertUtil -restoreDB | 还原 Active Directory 证书服务数据库 | |
| CertUtil -restoreKey | 还原 Active Directory 证书服务证书和私钥 | |
| 证书与存储操作 | CertUtil -addEccCurve | 添加 ECC 曲线 |
| CertUtil -deleteEccCurve | 删除 ECC 曲线 | |
| CertUtil -displayEccCurve | 显示 ECC 曲线 | |
| 证书验证与管理 | CertUtil -verifykeys | 验证公/私钥集 |
| CertUtil -verify | 验证证书,CRL 或链 | |
| CertUtil -syncWithWU | 与 Windows 更新同步 | |
| 证书模板与策略 | CertUtil -ADTemplate | 显示 AD 模板 |
| CertUtil -Template | 显示注册策略模板 | |
| CertUtil -TemplateCAs | 显示模板的 CA | |
| CertUtil -SetCASites | 管理 CA 的站点名称 | |
| 证书服务器与注册 | CertUtil -addEnrollmentServer | 添加注册服务器应用程序 |
| CertUtil -deleteEnrollmentServer | 删除注册服务器应用程序 | |
| CertUtil -addPolicyServer | 添加策略服务器应用程序 | |
| CertUtil -deletePolicyServer | 删除策略服务器应用程序 | |
| 证书存档与密钥管理 | CertUtil -ImportKMS | 为密钥存档导入用户密钥和证书到服务器数据库 |
| CertUtil -ImportCert | 将证书文件导入数据库 | |
| CertUtil -GetKey | 检索存档的私钥恢复 Blob,生成恢复脚本 | |
| CertUtil -RecoverKey | 恢复存档的私钥 | |
| CertUtil -MergePFX | 合并 PFX 文件 | |
| CertUtil -ConvertEPF | 将 PFX 文件转换为 EPF 文件 | |
| 证书发布与管理 | CertUtil -dsPublish | 将证书或 CRL 发布到 Active Directory |
| CertUtil -verifyCTL | 验证 AuthRoot 或不允许的证书 CTL | |
| 其他工具与功能 | CertUtil -flushCache | 刷新选定进程中的指定缓存 |
| CertUtil -error | 显示错误代码消息文本 | |
| CertUtil -getreg | 显示注册表值 | |
| CertUtil -setreg | 设置注册表值 | |
| CertUtil -delreg | 删除注册表值 | |
| 智能卡与身份验证 | CertUtil -SCInfo | 显示智能卡信息 |
| CertUtil -SCRoots | 管理智能卡根证书 | |
| CertUtil -DeleteHelloContainer | 删除 Hello 登录容器,用户需要注销完成 |
Windows 中的 certutil 命令是一个用于证书操作和证书服务的命令行工具。它提供了许多与证书和证书服务相关的功能,包括管理证书、证书链、证书存储以及执行各种加密、解密和签名操作等。
主要用途包括:
-
证书管理:
certutil可以用来查看、导出、导入、删除证书,以及设置证书属性等。这对于管理系统中的数字证书非常有用,例如安全通信、身份认证等方面。 -
证书链管理: 它可以用来验证证书链,并执行与证书链相关的操作,如验证服务器证书的有效性、构建证书链等。
-
证书存储管理:
certutil可以管理本地计算机和当前用户的证书存储,包括查看、导出、导入证书存储等操作。 -
加密和解密操作: 它可以执行加密和解密操作,包括对文件、数据进行加密和解密,以及对加密密钥进行管理。
-
签名操作:
certutil可以对文件进行签名和验证签名,以确保文件的完整性和可信性。 -
PKI(公钥基础设施)服务管理: 在部署 PKI 服务时,
certutil可以用于管理证书颁发机构(CA)、证书吊销列表(CRL)、证书请求(CSR)等操作。
certutil 是一个强大的证书管理工具,用于在 Windows 系统中执行各种与证书和加密相关的操作,包括证书管理、加密解密、签名验证等。
Windows 中的 certutil 命令起源于微软的 Certificate Services(证书服务),该服务最早出现在 Windows 2000 Server 中。Certificate Services 是用于在 Windows 平台上构建和管理公钥基础设施(PKI)的一组工具和服务。PKI 是一种基于公钥加密的体系结构,用于实现安全通信、身份认证等功能。
certutil 命令作为 Certificate Services 的一部分,最初设计用于执行与证书和加密相关的各种操作,如证书管理、加密解密、签名验证等。随着 Windows 平台的发展,certutil 命令逐渐成为 Windows 系统中重要的证书管理工具之一,广泛应用于各种与安全相关的场景中。
随着操作系统版本的更新和功能的扩展,certutil 命令也不断发展和完善,提供了更多功能和选项,以满足不断增长的安全需求。它已经成为 Windows 平台上管理证书和执行加密操作的标准工具之一,被广泛用于企业网络、服务器环境以及个人电脑中。
Windows 的 certutil 命令在其发展过程中经历了多个阶段,主要包括以下几个阶段:
-
Windows 2000 Server:
certutil命令最初作为 Windows 2000 Server 中 Certificate Services 的一部分引入。在这个阶段,它主要用于执行基本的证书管理操作,如查看、导出、导入证书等。 -
Windows Server 2003: 在 Windows Server 2003 中,
certutil命令得到了进一步扩展和增强,以支持更多的证书操作和功能。这包括对证书链的更好支持、对证书存储的更多管理选项以及对加密、解密操作的增强等。 -
Windows Vista/Server 2008: 随着 Windows Vista 和 Windows Server 2008 的推出,
certutil命令进一步改进,以适应新的安全特性和需求。这包括对 PKI 服务的改进、加密算法的更新以及对新证书格式的支持等。 -
Windows 7/Server 2008 R2: 在 Windows 7 和 Windows Server 2008 R2 中,
certutil命令继续得到改进和优化,以提供更好的性能和功能。这包括对证书管理和加密操作的更多选项、更好的错误处理机制以及对新标准的支持等。 -
Windows 8/Server 2012: 随着 Windows 8 和 Windows Server 2012 的推出,
certutil命令进一步完善,并引入了一些新功能和特性。这包括对现代密码学算法的支持、对智能卡和硬件安全模块的更好集成以及对新的证书格式和标准的支持等。 -
Windows 10/Server 2016 及更新版本: 在 Windows 10 和 Windows Server 2016 及其更新版本中,
certutil命令继续跟随操作系统的发展,提供对最新安全特性和标准的支持,以及更多的性能优化和改进。
-
Windows Server 2019/Windows 11: 随着 Windows Server 2019 和 Windows 11 的推出,
certutil命令继续在安全性、性能和功能方面进行改进和优化。这包括对证书管理、PKI 环境和加密操作的进一步增强,以满足企业和个人用户在安全领域不断增长的需求。 -
云服务整合: 随着云计算和混合云环境的普及,
certutil命令也开始与云服务进行集成,以便更好地管理在云平台上部署的证书和密钥。这包括与 Azure Active Directory 和其他云服务提供商的身份验证和密钥管理服务集成,以便统一管理企业的身份验证和访问控制。 -
自动化和脚本化: 随着自动化和脚本化在 IT 管理中的重要性日益增强,
certutil命令也提供了更多的命令行选项和参数,以便于脚本编写和批量操作。这使得管理员可以通过脚本自动化证书管理、密钥生成和更新等任务,提高效率并减少人为错误。 -
安全性和合规性: 随着安全性和合规性要求的不断提高,
certutil命令也致力于提供更严格的安全性控制和合规性支持。这包括对证书颁发机构(CA)的认证和审核、对证书存储和传输的加密保护、对密钥管理和访问控制的强化等,以确保证书和密钥的安全性和完整性。
Windows 的 certutil 命令在其发展过程中不断演进和完善,以满足不断变化的安全需求和技术标准,并与现代 IT 环境和云服务相整合,为用户提供可靠的证书管理和加密解决方案。
Windows 的 certutil 命令是一个强大的证书管理工具,可以用于各种应用场景,包括但不限于:
-
证书管理:
certutil可以用于查看、导入、导出、删除证书等基本的证书管理操作。这对于管理系统证书、客户端证书以及在 PKI(Public Key Infrastructure,公钥基础设施)环境中的证书是非常有用的。 -
证书链验证: 通过
certutil命令,可以验证证书链的有效性,确保证书链中的每个证书都是受信任的,并且链中的每个证书都可以验证前一个证书的有效性。这对于确保安全的 TLS/SSL 连接非常重要。 -
证书请求生成和签名:
certutil可以生成证书请求(Certificate Signing Request,CSR)并将其发送到证书颁发机构(CA)进行签名,以获取服务器证书或客户端证书。这在建立安全连接时是必不可少的。 -
证书复制和分发: 在企业环境中,可能需要将证书从一个系统复制到另一个系统,或者将证书分发给多个系统。
certutil可以用于在不同系统之间复制和分发证书。 -
密钥管理: 除了证书管理外,
certutil还可以用于生成、导入、导出和删除密钥对,以及对密钥进行加密和解密操作。这对于安全地存储和传输数据非常重要。 -
智能卡管理: 对于使用智能卡进行身份验证的系统,
certutil可以用于管理智能卡上的证书和密钥,并与智能卡进行交互。 -
PKI 管理: 在建立和维护 PKI 环境时,
certutil可以用于管理证书颁发机构(CA)、证书撤销列表(CRL)、证书存储和相关配置等。 -
脚本自动化: 由于
certutil支持命令行操作,因此可以通过脚本自动化证书管理和密钥操作,以提高效率并减少人为错误。
certutil 命令在 Windows 系统中扮演着重要的角色,为安全连接和数据保护提供了必要的工具和功能。
Windows 的 certutil 命令还可以用于一些更高级的应用场景,包括:
-
证书链验证和故障排除: 通过
certutil命令,可以执行深入的证书链验证和故障排除。这包括验证证书链中的每个证书是否有效,检查证书是否过期或被吊销,以及识别导致证书验证失败的原因。 -
证书转换和格式转换: 在不同的证书格式之间进行转换是常见的需求,例如将 PEM 格式的证书转换为 DER 格式,或者将 PFX 格式的证书转换为 PEM 格式。
certutil可以用于执行这些转换操作,以满足不同系统和应用程序的需求。 -
证书和密钥导出: 有时需要将证书和私钥导出到外部存储介质(如 USB 驱动器)或另一台计算机上,以备份或迁移目的。
certutil可以用于安全地导出证书和私钥,并对其进行加密保护。 -
证书和密钥备份和恢复: 对于关键的证书和密钥,定期备份是非常重要的。
certutil可以用于执行证书和密钥的备份,并在需要时进行恢复,以确保系统的连续性和数据的完整性。 -
证书颁发机构(CA)管理: 如果您在组织内部运行自己的证书颁发机构(CA),则可以使用
certutil来管理 CA 的证书和密钥,包括生成新的根证书、签名证书请求、撤销证书等操作。 -
证书验证策略配置: 通过
certutil命令,可以配置和管理证书验证策略,包括定义受信任的根证书颁发机构(CA)、设置证书吊销检查选项、指定证书链验证策略等。 -
证书和密钥的硬件保护: 如果系统支持硬件安全模块(HSM)或智能卡,
certutil可以与这些硬件设备进行集成,以提供额外的安全性保护,并确保私钥的安全存储和使用。
certutil 命令提供了丰富的功能和选项,可以满足各种复杂的证书管理和密钥操作需求,帮助用户确保系统的安全性和连续性。
Windows 11环境版本
|
certutil /? 动词: -decodehex -- 解码十六进制编码的文件 -deny -- 拒绝挂起的申请 -getconfig -- 获取默认配置字符串 -installCert -- 安装证书颁发机构证书 -schema -- 转储证书架构 -backup -- 备份 Active Directory 证书服务 -store -- 转储证书存储 -dsPublish -- 将证书或 CRL 发布到 Active Directory -ADTemplate -- 显示 AD 模板 -SCRoots -- 管理智能卡根证书 -DeleteHelloContainer -- 删除 Hello 登录容器。 -vroot -- 创建/删除 Web 虚拟根和文件共享 -ImportKMS -- 为密钥存档导入用户密钥和证书到服务器数据库 -add-chain -- (-AddChain) 添加证书链
CertUtil: -? 命令成功完成。 |
Windows server 2022
|
当结合不同的参数和用法时,CertUtil 命令可以用于各种不同级别的应用。以下是初级、中级和高级应用实例:
初级应用实例:
-
查看证书信息:
- 命令:
certutil -store My - 简要说明:使用 CertUtil 命令查看当前用户个人存储区(My)中安装的证书信息。
- 命令:
-
导出证书:
- 命令:
certutil -exportPFX -p "password" "certificateName" "exportedCert.pfx" - 简要说明:将指定名称的证书导出为 PFX 文件,可与私钥一起导出。
- 命令:
中级应用实例:
-
验证证书链:
- 命令:
certutil -verify -urlfetch "certificate.cer" - 简要说明:对指定的证书文件执行验证操作,包括链验证和 URL 检索。
- 命令:
-
安装证书:
- 命令:
certutil -addstore "root" "certificate.cer" - 简要说明:将指定的根证书安装到计算机的根证书存储区。
- 命令:
高级应用实例:
-
生成自签名证书:
- 命令:
certutil -csp "Microsoft Enhanced Cryptographic Provider v1.0" -importpfx "SelfSignedCert.pfx" - 简要说明:使用指定的密码提供程序生成自签名证书,并将其导入到存储区。
- 命令:
-
执行证书请求和颁发:
- 命令:
certutil -installcert "requestFile.req" - 简要说明:执行从证书颁发机构获得的证书请求文件,并将颁发的证书安装到存储区。
- 命令:
以上是 CertUtil 命令在初级、中级和高级应用中的示例。根据具体需求,你可以进一步探索 CertUtil 的更多功能和用法。
当 CertUtil 命令与其他命令组合使用时,可以实现不同级别的功能。以下是初级、中级和高级应用示例:
初级应用实例:
- 证书导出后清理:
- 命令组合:
certutil -exportPFX -p "password" "certificateName" "exportedCert.pfx" && del "certificateName" - 简要说明:将指定名称的证书导出为 PFX 文件后,使用 del 命令删除原始证书文件。
- 命令组合:
中级应用实例:
-
生成自签名证书并导入:
- 命令组合:
makecert -r -pe -n "CN=SelfSignedCert" -ss MY && certutil -addstore "MY" "SelfSignedCert" && del "SelfSignedCert" - 简要说明:结合 makecert 命令生成自签名证书并导入到个人存储区,然后使用 del 命令删除原始证书文件。
- 命令组合:
-
验证证书链并输出到文件:
- 命令组合:
certutil -verify -urlfetch "certificate.cer" > verificationResult.txt - 简要说明:对指定的证书执行验证操作,并将验证结果输出到文本文件。
- 命令组合:
高级应用实例:
-
生成 CSR 并提交到 CA:
- 命令组合:
certreq -new request.inf certrequest.req && certutil -submit -attrib "CertificateTemplate:WebServer" certrequest.req - 简要说明:使用 certreq 命令生成证书请求,并将生成的请求提交给证书颁发机构进行签发。
- 命令组合:
-
导入由 CA 签发的证书:
- 命令组合:
certreq -accept -q "CA-signedCertificate.cer" - 简要说明:接受并导入由证书颁发机构签发的证书请求文件。
- 命令组合:
以上是 CertUtil 命令与其他命令组合使用的初级、中级和高级应用实例。根据具体需求和环境,你可以进一步探索更多命令组合方式以实现不同的功能。

浙公网安备 33010602011771号