1 需求
需求1:获取应用文件的MD5
- CertUtil -hashfile 文件路径 MD5
2 语法
C:\>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: -? 命令成功完成。
C:\>certutil -v -?
动词:
-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 [选项] [-dump]
CertUtil [选项] [-dump] [文件]
转储配置信息或文件
[-f] [-user] [-Silent] [-split] [-p 密码] [-t 超时]
CertUtil [选项] -dumpPFX 文件
转储 PFX 结构
[-f] [-Silent] [-split] [-p 密码] [-csp 提供程序]
CertUtil [选项] -asn 文件[类型]
分析 ASN.1 文件
类型 -- 数值 CRYPT_STRING_* 解码类型
CertUtil [选项] -decodehex InFile OutFile [type]
解码十六进制编码的文件
类型 -- 数值 CRYPT_STRING_* 编码类型
[-f]
CertUtil [选项] -decode InFile OutFile
解码 Base64 编码的文件
[-f]
CertUtil [选项] -encode InFile OutFile
将文件编码为 Base64
[-f] [-UnicodeText]
CertUtil [选项] -deny RequestId
拒绝挂起的申请
[-config Machine\CAName]
CertUtil [选项] -resubmit RequestId
重新提交挂起的申请
[-config Machine\CAName]
CertUtil [选项] -setattributes RequestId AttributeString
为挂起申请设置属性
RequestId -- 挂起申请的数字申请 Id
AttributeString -- 申请属性名和值对
名称和值用冒号分隔。
多名称、值对在不同的行。
示例: "CertificateTemplate:User\nEMail:User@Domain.com"
每个 "\n" 序列被转换为新行分隔符。
[-config Machine\CAName]
CertUtil [选项] -setextension RequestId ExtensionName Flags {Long | Date | String | @InFile}
为挂起申请设置扩展
RequestId -- 挂起申请的数字申请 Id
ExtensionName -- 扩展的 ObjectId 字符串
Flags -- 0 为推荐的。1 标识扩展是关键的,
2 禁用它,3 两者都执行。
如果最后一个参数为数字,它将作为 Long 被接受。
如果它可以被分析为日期,它将被作为日期接受。
如果它以 '@' 开头,则此标识的其余部分为包含二进制数据或 ASCII 文本十六进制转储的文件名。
其他情况都将作为 String 接受。
[-config Machine\CAName]
CertUtil [选项] -revoke SerialNumber [Reason]
吊销证书
SerialNumber -- 要吊销的证书序列号列表(以逗号分隔)
Reason -- 吊销原因(数字或符号):
0: CRL_REASON_UNSPECIFIED -- 未指定(默认)
1: CRL_REASON_KEY_COMPROMISE -- 密钥泄漏
2: CRL_REASON_CA_COMPROMISE -- CA 泄漏
3: CRL_REASON_AFFILIATION_CHANGED -- 从属更改
4: CRL_REASON_SUPERSEDED -- 被取代
5: CRL_REASON_CESSATION_OF_OPERATION -- 操作停止
6: CRL_REASON_CERTIFICATE_HOLD -- 证书挂起
8: CRL_REASON_REMOVE_FROM_CRL -- 从 CRL 中删除
9: CRL_REASON_PRIVILEGE_WITHDRAWN -- 特权撤消
10: CRL_REASON_AA_COMPROMISE -- AA 泄露
-1: Unrevoke -- 取消吊销
[-config Machine\CAName]
CertUtil [选项] -isvalid SerialNumber | CertHash
显示当前证书部署
[-config Machine\CAName]
CertUtil [选项] -getconfig
获取默认配置字符串
[-config Machine\CAName]
CertUtil [选项] -ping [MaxSecondsToWait | CAMachineList]
Ping Active Directory 证书服务申请接口
CAMachineList -- 以逗号分隔的 CA 计算机名称列表
对于单个计算机,请使用结束逗号
显示每个 CA 计算机的站点开销
[-config Machine\CAName] [-Anonymous] [-Kerberos] [-ClientCertificate ClientCertId] [-UserName 用户名] [-p 密码]
修饰符:
SCEP
CES
CEP
CertUtil [选项] -pingadmin
Ping Active Directory 证书服务管理接口
[-config Machine\CAName]
CertUtil [选项] -CAInfo [InfoName [Index | ErrorCode]]
显示 CA 信息
InfoName -- 表示要显示的 CA 属性(参见下面)
为所有属性使用 "*"
Index -- 从零开始的属性索引(可选)
ErrorCode -- 错误代码(数字)
[-f] [-split] [-config Machine\CAName]
InfoName 参数语法:
file -- 文件版本
product -- 产品版本
exitcount -- 退出模块计数
exit [Index] -- 退出模块描述
policy -- 策略模块描述
name -- CA 名称
sanitizedname -- 整理过的 CA 名称
dsname -- 净化的 CA 短名称(DS 名称)
sharedfolder -- 共享文件夹
error1 错误代码 -- 错误消息文本
error2 错误代码 -- 错误消息文本和错误代码
type -- CA 类型
info -- CA 信息
parent -- 父 CA
certcount -- CA 证书计数
xchgcount -- CA 交换证书计数
kracount -- KRA 证书计数
kraused -- KRA 证书使用计数
propidmax -- 最大 CA PropId
certstate [Index] -- CA 证书
certversion [Index] -- CA 证书版本
certstatuscode [Index] -- CA 证书验证状态
crlstate [Index] -- CRL
krastate [Index] -- KRA 证书
crossstate+ [Index] -- 前向交叉证书
crossstate- [Index] -- 后向交叉证书
cert [Index] -- CA 证书
certchain [Index] -- CA 证书链
certcrlchain [Index] -- 有 CRL 的 CA 证书链
xchg [Index] -- CA 交换证书
xchgchain [Index] -- CA 交换证书链
xchgcrlchain [Index] -- 有 CRL 的 CA 交换证书链
kra [Index] -- KRA 证书
cross+ [Index] -- 前向交叉证书
cross- [Index] -- 后向交叉证书
CRL [Index] -- 基 CRL
deltacrl [Index] -- 增量 CRL
crlstatus [Index] -- CRL 发布状态
deltacrlstatus [Index] -- 增量 CRL 发布状态
dns -- DNS 名称
role -- 角色分离
ads -- Advanced Server
templates -- 模板
ocsp [Index] -- OCSP URL
aia [Index] -- AIA URL
cdp [Index] -- CDP URL
localename -- CA 区域名称
subjecttemplateoids -- 使用者模板 OID
CertUtil [选项] -ca.cert OutCACertFile [Index]
检索 CA 的证书
OutCACertFile -- 输出文件
Index -- CA 证书续订索引(默认为最新的)
[-f] [-split] [-config Machine\CAName]
CertUtil [选项] -ca.chain OutCACertChainFile [Index]
检索 CA 的证书链
OutCACertChainFile -- 输出文件
Index -- CA 证书续订索引(默认为最新的)
[-f] [-split] [-config Machine\CAName]
CertUtil [选项] -GetCRL OutFile [Index] [delta]
获取 CRL
Index -- CRL 索引或密钥索引(对最新的密钥默认到 CRL)
delta -- 增量 CRL(默认为基 CRL)
[-f] [-split] [-config Machine\CAName]
CertUtil [选项] -CRL [dd:hh | republish] [delta]
发布新的 CRL [或仅增量 CRL]
dd:hh -- 新 CRL 的有效期(以天和小时计)
republish -- 重新发布最新的 CRL
delta -- 仅增量 CRL(默认为基和增量 CRL)
[-split] [-config Machine\CAName]
CertUtil [选项] -shutdown
关闭 Active Directory 证书服务
[-config Machine\CAName]
CertUtil [选项] -installCert [CACertFile]
安装证书颁发机构证书
[-f] [-Silent] [-config Machine\CAName]
CertUtil [选项] -renewCert [ReuseKeys] [Machine\ParentCAName]
续订证书颁发机构证书
使用 -f 来忽略未完成的续订申请,并且生成新的申请。
[-f] [-Silent] [-config Machine\CAName]
CertUtil [选项] -schema [Ext | Attrib | CRL]
转储证书架构
默认到申请和证书表
Ext -- 扩展表
Attrib -- 属性表
CRL -- CRL 表
[-split] [-config Machine\CAName]
CertUtil [选项] -view [Queue | Log | LogFail | Revoked | Ext | Attrib | CRL] [csv]
转储证书视图
Queue -- 请求队列
Log -- 已颁发或吊销的证书,以及失败的请求
LogFail -- 失败的请求
Revoked -- 已吊销的证书
Ext -- 扩展表
Attrib -- 属性表
CRL -- CRL 表
csv -- 以逗号分隔值输出
显示所有项目的 StatusCode 栏:
-out StatusCode
显示最后项目的所有栏:
-restrict "RequestId==$"
显示三个请求的 RequestId 和部署:
-restrict "RequestId>=37,RequestId<40" -out "RequestId,Disposition"
显示所有基 CRL 的行 Id 和 CRL 数量:
-restrict "CRLMinBase=0" -out "CRLRowId,CRLNumber" CRL
显示基 CRL 编号 3:
-v -restrict "CRLMinBase=0,CRLNumber=3" -out "CRLRawCRL" CRL
显示整个 CRL 表:
CRL
将 "Date[+|-dd:hh]" 用于日期限制
将 "now+dd:hh" 用于相对于当前时间的日期
[-Silent] [-split] [-config Machine\CAName] [-restrict 限制列表] [-out 栏列表]
CertUtil [选项] -db
转储原始数据库
[-config Machine\CAName] [-restrict 限制列表] [-out 栏列表]
CertUtil [选项] -deleterow RowId | Date [Request | Cert | Ext | Attrib | CRL]
删除服务器数据库行
Request -- 失败并被挂起的申请(提交日期)
Cert -- 过期并被吊销的证书(过期日期)
Ext -- 扩展表
Attrib -- 属性表
CRL -- CRL 表(过期日期)
删除提交时间为 1/22/2001 的失败并被挂起的申请:
1/22/2001 Request
删除在 1/22/2001 过期的所有证书:
1/22/2001 Cert
删除 RequestId 37 的证书行,属性和扩展:
37
删除在 1/22/2001 过期的 CRL:
1/22/2001 CRL
[-f] [-config Machine\CAName]
CertUtil [选项] -backup BackupDirectory [Incremental] [KeepLog]
备份 Active Directory 证书服务
BackupDirectory -- 存储备份数据的目录
Incremental -- 仅执行增量备份(默认为完整备份)
KeepLog -- 保留数据库日志文件(默认为截断日志文件)
[-f] [-config Machine\CAName] [-p 密码] [-ProtectTo SAMNameAndSIDList]
CertUtil [选项] -backupDB BackupDirectory [Incremental] [KeepLog]
备份 Active Directory 证书服务数据库
BackupDirectory -- 存储备份数据库文件的目录
Incremental -- 仅执行增量备份(默认为完整备份)
KeepLog -- 保留数据库日志文件(默认为截断日志文件)
[-f] [-config Machine\CAName]
CertUtil [选项] -backupKey BackupDirectory
备份 Active Directory 证书服务证书和私钥
BackupDirectory -- 存储备份 PFX 文件的目录
[-f] [-config Machine\CAName] [-p 密码] [-ProtectTo SAMNameAndSIDList] [-t 超时]
CertUtil [选项] -restore BackupDirectory
还原 Active Directory 证书服务
BackupDirectory -- 包含要还原的数据的目录
[-f] [-config Machine\CAName] [-p 密码]
CertUtil [选项] -restoreDB BackupDirectory
还原 Active Directory 证书服务数据库
BackupDirectory -- 包含要还原的数据库文件的目录
[-f] [-config Machine\CAName]
CertUtil [选项] -restoreKey BackupDirectory | PFXFile
还原 Active Directory 证书服务证书和私钥
BackupDirectory -- 包含要还原的 PFX 文件的目录
PFXFile -- 要还原的 PFX 文件
[-f] [-config Machine\CAName] [-p 密码]
CertUtil [选项] -importPFX [CertificateStoreName] PFXFile [Modifiers]
导入证书和私钥
CertificateStoreName -- 证书存储名称。请参见 -store。
PFXFile -- 要导入的 PFX 文件
Modifiers -- 包含下面的一项或多项内容的列表(以逗号分隔):
AT_SIGNATURE -- 将 KeySpec 更改为签名
AT_KEYEXCHANGE -- 将 KeySpec 更改为密钥交换
NoExport -- 将私钥设置为无法导出
NoCert -- 不导入证书
NoChain -- 不导入证书链
NoRoot -- 不导入根证书
Protect -- 使用密码保护密钥
NoProtect -- 不使用密码保护密钥
默认为个人计算机存储。
[-f] [-Enterprise] [-user] [-GroupPolicy] [-Silent] [-p 密码] [-csp 提供程序]
修饰符:
NoExport
ExportEncrypted
NoCert
NoChain -- 仅限最终实体证书
NoRoot -- 排除根证书
NoProtect
Protect
ProtectHigh
Pkcs8
AT_SIGNATURE
AT_KEYEXCHANGE
FriendlyName=
KeyFriendlyName=
KeyDescription=
VSM
CertUtil [选项] -dynamicfilelist
显示动态文件列表
[-config Machine\CAName]
CertUtil [选项] -databaselocations
显示数据库位置
[-config Machine\CAName]
CertUtil [选项] -hashfile InFile [HashAlgorithm]
通过文件生成并显示加密哈希
CertUtil [选项] -store [CertificateStoreName [CertId [OutputFile]]]
转储证书存储
CertificateStoreName -- 证书存储名称。示例:
"My"、"CA"(默认)、"Root",
"ldap:///CN=Certification Authorities,CN=Public Key Services,CN=Services,CN=Configuration,DC=zte,DC=intra?cACertificate?one?objectClass=certificationAuthority"(查看根证书)
"ldap:///CN=CAName,CN=Certification Authorities,CN=Public Key Services,CN=Services,CN=Configuration,DC=zte,DC=intra?cACertificate?base?objectClass=certificationAuthority"(修改根证书)
"ldap:///CN=CAName,CN=MachineName,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,DC=zte,DC=intra?certificateRevocationList?base?objectClass=cRLDistributionPoint"(查看 CRL)
"ldap:///CN=NTAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration,DC=zte,DC=intra?cACertificate?base?objectClass=certificationAuthority"(企业 CA 证书)
ldap: (AD 计算机对象证书)
-user ldap: (AD 用户对象证书)
CertId -- 证书或 CRL 匹配令牌。这可以是一个序列号,
一个 SHA-1 证书、CRL、CTL 或公钥哈希,
一个数字证书索引(0, 1, 等等),
一个数字 CRL 索引(.0, .1, 等等),
一个数字 CTL 索引(..0, ..1, 等等),
一个公钥,签名或扩展 ObjectId,
一个证书使用者公用名
一个电子邮件地址、UPN 或 DNS 名称,
一个密钥容器名称或 CSP 名称,
一个模板名称或 ObjectId,
一个 EKU 或应用程序策略 ObjectId,
或者一个 CRL 颁发者公用名。
上面这些可能会产生多重匹配。
OutputFile -- 保存匹配证书的文件
使用 -user 来访问用户存储而不是计算机存储。
使用 -enterprise 访问计算机企业存储。
使用 -service 访问计算机服务存储。
使用 -grouppolicy 访问计算机组策略存储。
示例:
-enterprise NTAuth
-enterprise Root 37
-user My 26e0aaaf000000000004
CA .11
[-f] [-Enterprise] [-user] [-GroupPolicy] [-Silent] [-split] [-dc DCName]
CertUtil [选项] -enumstore [\\MachineName]
枚举证书存储
MachineName -- 远程计算机名称。
[-Enterprise] [-user] [-GroupPolicy]
CertUtil [选项] -addstore CertificateStoreName InFile
将证书添加到存储
CertificateStoreName -- 证书存储名称。参见 -store。
InFile -- 要添加到存储的证书或 CRL 文件。
[-f] [-Enterprise] [-user] [-GroupPolicy] [-dc DCName]
修饰符:
Certs
CRLs
CTLs
Root
NoRoot
CertUtil [选项] -delstore CertificateStoreName CertId
从存储删除证书
CertificateStoreName -- 证书存储名称。参见 -store。
CertId -- 证书或 CRL 匹配令牌。参见 -store。
[-f] [-Enterprise] [-user] [-GroupPolicy] [-Silent] [-dc DCName]
CertUtil [选项] -verifystore CertificateStoreName [CertId]
验证存储中的证书
CertificateStoreName -- 证书存储名称。参见 -store。
CertId -- 证书或 CRL 匹配令牌。参见 -store。
[-Enterprise] [-user] [-GroupPolicy] [-Silent] [-split] [-dc DCName] [-t 超时]
CertUtil [选项] -repairstore CertificateStoreName CertIdList [PropertyInfFile | SDDLSecurityDescriptor]
修复密钥关联,或者更新证书属性或密钥安全描述符
CertificateStoreName -- 证书存储名称。请参见 -store。
CertIdList -- 以逗号分隔的证书或 CRL 匹配令牌列表。
请参见 -store 的 CertId 说明。
PropertyInfFile -- 包含外部属性的 INF 文件:
[Properties]
19 = Empty ; 添加存档的属性,或者:
19 = ; 删除存档的属性
11 = "{text}Friendly Name" ; 添加友好名称属性
127 = "{hex}" ; 添加自定义十六进制属性
_continue_ = "00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f"
_continue_ = "10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f"
2 = "{text}" ; 添加密钥提供程序信息属性
_continue_ = "Container=Container Name&"
_continue_ = "Provider=Microsoft Strong Cryptographic Provider&"
_continue_ = "ProviderType=1&"
_continue_ = "Flags=0&"
_continue_ = "KeySpec=2"
9 = "{text}" ; 添加增强密钥使用属性
_continue_ = "1.3.6.1.5.5.7.3.2,"
_continue_ = "1.3.6.1.5.5.7.3.1,"
[-f] [-Enterprise] [-user] [-GroupPolicy] [-Silent] [-split] [-csp 提供程序]
CertUtil [选项] -viewstore [CertificateStoreName [CertId [OutputFile]]]
转储证书存储
CertificateStoreName -- 证书存储名称。示例:
"My"、"CA"(默认)、"Root",
"ldap:///CN=Certification Authorities,CN=Public Key Services,CN=Services,CN=Configuration,DC=zte,DC=intra?cACertificate?one?objectClass=certificationAuthority"(查看根证书)
"ldap:///CN=CAName,CN=Certification Authorities,CN=Public Key Services,CN=Services,CN=Configuration,DC=zte,DC=intra?cACertificate?base?objectClass=certificationAuthority"(修改根证书)
"ldap:///CN=CAName,CN=MachineName,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,DC=zte,DC=intra?certificateRevocationList?base?objectClass=cRLDistributionPoint"(查看 CRL)
"ldap:///CN=NTAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration,DC=zte,DC=intra?cACertificate?base?objectClass=certificationAuthority"(企业 CA 证书)
ldap: (AD 计算机对象证书)
-user ldap: (AD 用户对象证书)
CertId -- 证书或 CRL 匹配令牌。这可以是一个序列号,
一个 SHA-1 证书、CRL、CTL 或公钥哈希,
一个数字证书索引(0, 1, 等等),
一个数字 CRL 索引(.0, .1, 等等),
一个数字 CTL 索引(..0, ..1, 等等),
一个公钥,签名或扩展 ObjectId,
一个证书使用者公用名
一个电子邮件地址、UPN 或 DNS 名称,
一个密钥容器名称或 CSP 名称,
一个模板名称或 ObjectId,
一个 EKU 或应用程序策略 ObjectId,
或者一个 CRL 颁发者公用名。
上面这些可能会产生多重匹配。
OutputFile -- 保存匹配证书的文件
使用 -user 来访问用户存储而不是计算机存储。
使用 -enterprise 访问计算机企业存储。
使用 -service 访问计算机服务存储。
使用 -grouppolicy 访问计算机组策略存储。
示例:
-enterprise NTAuth
-enterprise Root 37
-user My 26e0aaaf000000000004
CA .11
[-f] [-Enterprise] [-user] [-GroupPolicy] [-dc DCName]
CertUtil [选项] -viewdelstore [CertificateStoreName [CertId [OutputFile]]]
从存储删除证书
CertificateStoreName -- 证书存储名称。示例:
"My"、"CA"(默认)、"Root",
"ldap:///CN=Certification Authorities,CN=Public Key Services,CN=Services,CN=Configuration,DC=zte,DC=intra?cACertificate?one?objectClass=certificationAuthority"(查看根证书)
"ldap:///CN=CAName,CN=Certification Authorities,CN=Public Key Services,CN=Services,CN=Configuration,DC=zte,DC=intra?cACertificate?base?objectClass=certificationAuthority"(修改根证书)
"ldap:///CN=CAName,CN=MachineName,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,DC=zte,DC=intra?certificateRevocationList?base?objectClass=cRLDistributionPoint"(查看 CRL)
"ldap:///CN=NTAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration,DC=zte,DC=intra?cACertificate?base?objectClass=certificationAuthority"(企业 CA 证书)
ldap: (AD 计算机对象证书)
-user ldap: (AD 用户对象证书)
CertId -- 证书或 CRL 匹配令牌。这可以是一个序列号,
一个 SHA-1 证书、CRL、CTL 或公钥哈希,
一个数字证书索引(0, 1, 等等),
一个数字 CRL 索引(.0, .1, 等等),
一个数字 CTL 索引(..0, ..1, 等等),
一个公钥,签名或扩展 ObjectId,
一个证书使用者公用名
一个电子邮件地址、UPN 或 DNS 名称,
一个密钥容器名称或 CSP 名称,
一个模板名称或 ObjectId,
一个 EKU 或应用程序策略 ObjectId,
或者一个 CRL 颁发者公用名。
上面这些可能会产生多重匹配。
OutputFile -- 保存匹配证书的文件
使用 -user 来访问用户存储而不是计算机存储。
使用 -enterprise 访问计算机企业存储。
使用 -service 访问计算机服务存储。
使用 -grouppolicy 访问计算机组策略存储。
示例:
-enterprise NTAuth
-enterprise Root 37
-user My 26e0aaaf000000000004
CA .11
[-f] [-Enterprise] [-user] [-GroupPolicy] [-dc DCName]
CertUtil [选项] -UI 文件 [import]
调用 CryptUI
CertUtil [选项] -attest RequestFile
验证密钥证明请求
[-user] [-Silent] [-split]
CertUtil [选项] -dsPublish CertFile [NTAuthCA | RootCA | SubCA | CrossCA | KRA | User | Machine]
CertUtil [选项] -dsPublish CRLFile [DSCDPContainer [DSCDPCN]]
将证书或 CRL 发布到 Active Directory
CertFile -- 要发布的证书文件
NTAuthCA -- 发布证书到 DS 企业存储
RootCA -- 发布证书到 DS 信任根存储
SubCA -- 发布 CA 证书到 DS CA 对象
CrossCA -- 发布交叉证书到 DS CA 对象
KRA -- 发布证书到 DS 密钥恢复代理对象
User -- 发布证书到用户 DS 对象
Machine -- 发布证书到计算机 DS 对象
CRLFile -- 要发布的 CRL 文件
DSCDPContainer -- DS CDP 容器 CN,通常是 CA 计算机名
DSCDPCN -- DS CDP 对象 CN,通常基于净化后的 CA 短名称和密钥索引
使用 -f 来创建 DS 对象。
[-f] [-user] [-dc DCName]
CertUtil [选项] -ADTemplate [Template]
显示 AD 模板
[-f] [-user] [-ut] [-mt] [-dc DCName]
CertUtil [选项] -Template [Template]
显示注册策略模板
[-f] [-user] [-Silent] [-PolicyServer URLOrId] [-Anonymous] [-Kerberos] [-ClientCertificate ClientCertId] [-UserName 用户名] [-p 密码]
CertUtil [选项] -TemplateCAs 模板
显示模板的 CA
[-f] [-user] [-dc DCName]
CertUtil [选项] -CATemplates [Template]
显示 CA 的模板
[-f] [-user] [-ut] [-mt] [-config Machine\CAName] [-dc DCName]
CertUtil [选项] -SetCASites [set] [SiteName]
CertUtil [选项] -SetCASites verify [SiteName]
CertUtil [选项] -SetCASites delete
管理 CA 的站点名称
设置、验证或删除 CA 站点名称
使用 -config 选项以将单个 CA 作为目标(默认为所有 CA)
只有在将单个 CA 作为目标时,才允许使用 SiteName
使用 -f 以覆盖指定 SiteName 的验证错误
使用 -f 以删除所有 CA 站点名称
[-f] [-config Machine\CAName] [-dc DCName]
CertUtil [选项] -enrollmentServerURL [URL AuthenticationType [Priority] [Modifiers]]
CertUtil [选项] -enrollmentServerURL URL delete
显示、添加或删除与 CA 关联的注册服务器 URL
AuthenticationType -- 在添加 URL 时,指定以下客户端身份验证方法之一
Kerberos -- 使用 Kerberos SSL 凭据
UserName -- 使用指定帐户作为 SSL 凭据
ClientCertificate -- 使用 X.509 证书 SSL 凭据
Anonymous -- 使用匿名 SSL 凭据。
delete -- 删除与 CA 关联的指定 URL。
Priority -- 如果在添加 URL 时未指定,则默认为"1"。
Modifiers -- 包含下面的一项或多项内容的逗号分隔列表:
AllowRenewalsOnly -- 只能通过此 URL 将续订请求
提交到此 CA
AllowKeyBasedRenewal -- 允许使用在
AD 中没有关联帐户的证书。这仅适用于
ClientCertificate 和 AllowRenewalsOnly 模式。
[-config Machine\CAName] [-dc DCName]
CertUtil [选项] -ADCA [CAName]
显示 AD CA
[-f] [-split] [-dc DCName]
CertUtil [选项] -CA [CAName | TemplateName]
显示注册策略 CA
[-f] [-user] [-Silent] [-split] [-PolicyServer URLOrId] [-Anonymous] [-Kerberos] [-ClientCertificate ClientCertId] [-UserName 用户名] [-p 密码]
CertUtil [选项] -Policy
显示注册策略
[-f] [-user] [-Silent] [-split] [-PolicyServer URLOrId] [-Anonymous] [-Kerberos] [-ClientCertificate ClientCertId] [-UserName 用户名] [-p 密码]
CertUtil [选项] -PolicyCache [delete]
显示或删除注册策略缓存项目
delete -- 删除策略服务器缓存项目
-f -- 使用 -f 删除所有缓存项目。
[-f] [-user] [-PolicyServer URLOrId]
CertUtil [选项] -CredStore [URL]
CertUtil [选项] -CredStore URL add
CertUtil [选项] -CredStore URL delete
显示、添加或删除凭据存储项目
URL -- 目标 URL。使用 * 匹配所有项目
使用 https://machine* 匹配 URL 前缀
add -- 添加凭据存储项目
还必须指定 SSL 凭据
delete -- 删除凭据存储项目
-f -- 使用 -f 覆盖一个项目或删除多个项目。
[-f] [-user] [-Silent] [-Anonymous] [-Kerberos] [-ClientCertificate ClientCertId] [-UserName 用户名] [-p 密码]
CertUtil [选项] -InstallDefaultTemplates
安装默认的证书模板
[-dc DCName]
CertUtil [选项] -URLCache [URL | CRL | * [delete]]
显示或删除 URL 缓存项目
URL -- 缓存的 URL
CRL -- 只在所有缓存的 CRL URL 上操作
* -- 在所有的 URL 上操作
delete -- 从当前用户的本地缓存中删除有关的 URL
使用 -f 来强制提取特定的 URL 并更新缓存。
[-f] [-split]
CertUtil [选项] -pulse [TaskName [SRKThumbprint]]
以脉冲方式执行自动注册事件或 NGC 任务
TaskName -- 要触发的任务
Pregen -- NGC 密钥 Pregen 任务
AIKEnroll -- NGC AIK 证书注册任务。
默认为自动注册事件。
SRKThumbprint -- 存储根密钥的指纹
[-user]
修饰符:
Pregen
PregenDelay
AIKEnroll
CryptoPolicy
NgcPregenKey
DIMSRoam
CertUtil [选项] -MachineInfo DomainName\MachineName$
显示 Active Directory 计算机对象信息
CertUtil [选项] -DCInfo [Domain] [Verify | DeleteBad | DeleteAll]
显示域控制器信息
默认为显示 DC 证书而不进行验证
[-f] [-user] [-urlfetch] [-dc DCName] [-t 超时]
修饰符:
Verify
DeleteBad
DeleteAll
CertUtil [选项] -EntInfo DomainName\MachineName$
显示企业信息
[-f] [-user]
CertUtil [选项] -TCAInfo [DomainDN | -]
显示 CA 信息
[-f] [-Enterprise] [-user] [-urlfetch] [-dc DCName] [-t 超时]
CertUtil [选项] -SCInfo [ReaderName [CRYPT_DELETEKEYSET]]
显示智能卡信息
CRYPT_DELETEKEYSET -- 删除智能卡上的所有密钥
[-Silent] [-split] [-urlfetch] [-t 超时]
CertUtil [选项] -SCRoots update [+][InputRootFile] [ReaderName]
CertUtil [选项] -SCRoots save @OutputRootFile [ReaderName]
CertUtil [选项] -SCRoots view [InputRootFile | ReaderName]
CertUtil [选项] -SCRoots delete [ReaderName]
管理智能卡根证书
[-f] [-split] [-p 密码]
CertUtil [选项] -DeleteHelloContainer
删除 Hello 登录容器。
** 在使用此选项后, 用户需要注销才能完成。**
CertUtil [选项] -verifykeys [KeyContainerName CACertFile]
验证公/私钥集
KeyContainerName -- 要验证的密钥容器名称
默认为计算机密钥。对用户密钥请使用 -user
CACertFile -- 签名或加密证书文件
如果没有指定参数,每一个签名 CA 证书将对照它的私钥进行
验证。
此操作只能对本地 CA 或本地密钥执行。
[-f] [-user] [-Silent] [-config Machine\CAName]
CertUtil [选项] -verify CertFile [ApplicationPolicyList | - [IssuancePolicyList]] [Modifiers]
CertUtil [选项] -verify CertFile [CACertFile [CrossedCACertFile]]
CertUtil [选项] -verify CRLFile CACertFile [IssuedCertFile]
CertUtil [选项] -verify CRLFile CACertFile [DeltaCRLFile]
验证证书,CRL 或链
CertFile -- 要验证的证书
ApplicationPolicyList -- 逗号分隔的要求的应用程序策略 ObjectId 列表(可选)
IssuancePolicyList -- 逗号分隔的要求的发行策略 ObjectId 列表(可选)
CACertFile -- 要对照验证的发证 CA (可选)
CrossedCACertFile -- 由 CertFile 交叉验证的证书(可选)
CRLFile -- 要验证的 CRL
IssuedCertFile -- 由 CRLFile 包括的发行的证书(可选)
DeltaCRLFile -- 增量 CRL(可选)
如果指定了 ApplicationPolicyList,构建链被限制为对指定的应用程序策略
有效的链。
如果指定了 IssuancePolicyList,生成链被限制为对指定的发行策略有效的链。
如果指定了 CACertFile,在 CACertFile 中的域将对照 CertFile 或 CRLFile
验证。
如果没有指定 CACertFile,将使用 CertFile 来生成并验证完整链。
如果同时指定了 CACertFile 和 CrossedCACertFile,在 CACertFile 和
CrossedCACertFile 中的域将对照 CertFile 验证。
如果指定了 IssuedCertFile,在 IssuedCertFile 中的域将对照 CRLFile 验证。
如果指定了 DeltaCRLFile,在 DeltaCRLFile 中的域将对照 CRLFile 验证。
[-f] [-Enterprise] [-user] [-Silent] [-split] [-urlfetch] [-t 超时] [-sslpolicy ServerName]
修饰符:
Strong -- 强签名验证
MSRoot -- 必须链接到 Microsoft 根目录
MSTestRoot -- 必须链接到 Microsoft 测试根目录
AppRoot -- 必须链接到 Microsoft 应用程序根目录
EV -- 强制执行扩展验证策略
CertUtil [选项] -verifyCTL CTLObject [CertDir] [CertFile]
验证 AuthRoot 或不允许的证书 CTL
CTLObject -- 指定要验证的 CTL:
AuthRootWU -- 从 URL 缓存中读取 AuthRoot CAB 和匹配的
证书。使用 -f 可从 Windows 更新中下载。
DisallowedWU -- 从 URL 缓存中读取不允许的证书 CAB 和
不允许的证书存储文件。使用 -f 可
从 Windows 更新中下载。
PinRulesWU -- 从 URL 缓存中读取 PinRules CAB。使用 -f 可
从 Windows 更新中下载。
AuthRoot -- 读取注册表缓存的 AuthRoot CTL。与 -f 和
尚未信任的 CertFile 一起使用以强制更新
注册表缓存的 AuthRoot 和不允许的证书 CTL。
Disallowed -- 读取注册表缓存的不允许证书 CTL。
-f 具有与 AuthRoot 相同的行为。
PinRules -- 读取注册表缓存的 PinRules CTL。
-f 具有与 PinRulesWU 相同的行为。
CTLFileName -- CTL 或 CAB 的文件或 http: 路径
CertDir -- 包含与 CTL 条目匹配的证书的文件夹
http: 文件夹路径必须以路径分隔符结尾。
如果未使用 AuthRoot 或 Disallowed 指定文件夹,
则会在以下多个位置中搜索匹配的证书: 本地
证书存储、crypt32.dll 资源和本地 URL 缓存。
如有必要,请使用 -f 从 Windows 更新中下载。
否则,默认使用与 CTLObject 相同的文件夹或网站。
CertFile -- 包含要验证的证书的文件。将证书
与 CTL 条目进行匹配,并显示匹配结果。
隐藏大多数默认输出。
[-f] [-user] [-split]
CertUtil [选项] -syncWithWU DestinationDir
与 Windows 更新同步
DestinationDir -- 要复制到的文件夹。
已从 Windows Update 下载以下文件:
authrootstl.cab - 包含第三方根的 CTL。
disallowedcertstl.cab - 包含不允许的证书的 CTL。
disallowedcert.sst - 不允许的证书。
pinrulesstl.cab - 包含 SSL 捆绑规则的 CTL。
pinrules.sst - 捆绑规则证书。
<thumbprint>.crt - 第三方根。
[-f]
CertUtil [选项] -generateSSTFromWU SSTFile
通过 Windows 更新生成 SST
SSTFile -- 要创建的 .sst 文件。
生成的 .sst 文件包含从 Windows 更新下载的
第三方根。
[-f] [-split]
CertUtil [选项] -generatePinRulesCTL XMLFile CTLFile [SSTFile [QueryFilesPrefix]]
生成捆绑规则 CTL
XMLFile -- 要解析的输入 XML 文件。
CTLFile -- 要生成的输出 CTL 文件。
SSTFile -- 要创建的可选 .sst 文件。
.sst 文件包含所有用于捆绑的
证书。
QueryFilesPrefix -- 要为数据库查询创建的可选 Domains.csv 文件和 Keys.csv 文件。
QueryFilesPrefix 字符串附加到每个已创建文件的前面。
Domains.csv 文件包含规则名称、域行。
Keys.csv 文件包含规则名称、密钥 SHA256 指纹行。
[-f]
CertUtil [选项] -downloadOcsp CertificateDir OcspDir [ThreadCount] [修饰符]
下载 OCSP 响应并写入目录
CertificateDir -- 证书、存储和 PFX 文件的目录。
OcspDir -- 写入 OCSP 响应的目录。
ThreadCount -- 可选的并行下载的最大线程数。默认值为 10。
修饰符 -- 以下一项或多项的逗号分隔的列表:
DownloadOnce -- 下载一次,然后退出
ReadOcsp -- 从 OcspDir 读取而不是写入
默认情况 下,certutil 不会退出,必须显式终止。
修饰符:
DownloadOnce
ReadOcsp
CertUtil [选项] -generateHpkpHeader CertFileOrDir MaxAge [ReportUri] [Modifiers]
使用指定文件或目录中的证书生成 HPKP 头
CertFileOrDir -- 证书的文件或目录。pin-sha256 的源。
MaxAge -- 最大有效期值(以秒为单位)。
ReportUri -- 可选报告 uri。
Modifiers -- 逗号分隔的以下一项或多项的列表:
includeSubDomains -- 追加 includeSubDomains。
修饰符:
includeSubDomains
CertUtil [选项] -flushCache ProcessId CacheMask [修饰符]
刷新选定进程(例如 lsass.exe)中的指定缓存
ProcessId -- 要刷新的进程的数字 ID。设置为 0 以刷新所有已启用刷新的进程。
CacheMask -- 要刷新的缓存的位掩码。以下位的数字 OR:
0x01: CERT_WNF_FLUSH_CACHE_REVOCATION
0x02: CERT_WNF_FLUSH_CACHE_OFFLINE_URL
0x04: CERT_WNF_FLUSH_CACHE_MACHINE_CHAIN_ENGINE
0x08: CERT_WNF_FLUSH_CACHE_USER_CHAIN_ENGINES
0x10: CERT_WNF_FLUSH_CACHE_SERIAL_CHAIN_CERTS
0x20: CERT_WNF_FLUSH_CACHE_SSL_TIME_CERTS
0x40: CERT_WNF_FLUSH_CACHE_OCSP_STAPLING
0: ShowOnly
修饰符 -- 用逗号分隔的以下一个或多个内容的列表:
Show - 显示正在刷新的缓存。Certutil 必须显式终止。
修饰符:
Show
CertUtil [选项] -addEccCurve [CurveClass:]CurveName CurveParameters [CurveOID] [CurveType]
添加 ECC 曲线
CurveClass: -- ECC 曲线类类型:
- WEIERSTRASS [默认值]
- MONTGOMERY
- TWISTED_EDWARDS
CurveName -- ECC 曲线名称
CurveParameters -- ECC 曲线参数。为下列其中一项
- 包含 ASN 编码参数的证书文件名
- 包含 ASN 编码参数的文件
CurveOID -- ECC 曲线 OID。为下列其中一项:
- 包含 ASN 编码 OID 的证书文件名
- 显式 ECC 曲线 OID
CurveType -- Schannel ECC NamedCurve 点(数字)
[-f]
CertUtil [选项] -deleteEccCurve CurveName | CurveOID
删除 ECC 曲线
CurveName -- ECC 曲线名称
CurveOID -- ECC 曲线 OID
[-f]
CertUtil [选项] -displayEccCurve [CurveName | CurveOID]
显示 ECC 曲线
CurveName -- ECC 曲线名称
CurveOID -- ECC 曲线 OID
[-f]
CertUtil [选项] -sign InFileList|SerialNumber|CRL OutFileList [StartDate[+|-dd:hh]+|-dd:hh] [+SerialNumberList | -SerialNumberList | -ObjectIdList | @ExtensionFile]
CertUtil [选项] -sign InFileList|SerialNumber|CRL OutFileList [#HashAlgorithm] [+AlternateSignatureAlgorithm | -AlternateSignatureAlgorithm]
CertUtil [选项] -sign InFileList OutFileList [Subject:CN=...] [Issuer:hex data]
重新签名 CRL 或证书
InFileList -- 要修改并重新签名的证书或 CRL 文件列
表(以逗号分隔)
SerialNumber -- 要创建的证书的序列号
有效期和其他选项必须不存在
CRL -- 创建空 CRL
有效期和其他选项必须不存在
OutFileList -- 已修改的证书或 CRL 输出文件列表
(以逗号分隔)。文件数目必须同 InFileList 匹配。
StartDate[+|-dd:hh]+|-dd:hh -- 新的有效期: 可选日期加上
可选天数和小时数的开始日期偏移和可选
天数和小时数的有效期
如果使用多个字段,请使用(+)或(-)分隔符
使用"now[+dd:hh]"在当前时间启动
使用"now-dd:hh+dd:hh"在当前时间的固定偏移和
固定的有效期开始
使用"never"将无到期日期(仅用于 CRL)
SerialNumberList -- 要添加或删除的序列号列表(以逗号分隔)
ObjectIdList -- 要删除的扩展 ObjectId 列表(以逗号分隔)
@ExtensionFile -- 包含要更新或删除的扩展的 INF 文件:
[Extensions]
2.5.29.31 = ; 删除 CRL 分发点扩展
2.5.29.15 = "{hex}" ; 更新密钥使用扩展
_continue_="03 02 01 86"
HashAlgorithm -- 前面标有 # 号的哈希算法名称
AlternateSignatureAlgorithm -- 替换签名算法说明符
减号将删除序列号和扩展。
加号将添加序列号到 CRL。
从 CRL 中删除项目时,列表可能同时包含序列号
和 ObjectId。
AlternateSignatureAlgorithm 之前的减号将使用旧签名格式。
AlternateSignatureAlgorithm 之前的加号将使用替换签名格式。
如果未指定 AlternateSignatureAlgorithm,则使用证书或 CRL 中的签名格式。
[-nullsign] [-f] [-user] [-Silent] [-Cert CertId] [-csp 提供程序]
CertUtil [选项] -vroot [delete]
创建/删除 Web 虚拟根和文件共享
CertUtil [选项] -vocsproot [delete]
创建/删除 OCSP Web Proxy 的 Web 虚拟根
CertUtil [选项] -addEnrollmentServer Kerberos | UserName | ClientCertificate [AllowRenewalsOnly] [AllowKeyBasedRenewal]
添加注册服务器应用程序
如有必要,请为指定的 CA 添加注册服务器
应用程序和应用程序池。此命令不安装二进制文件或程序包
客户端可通过以下身份验证方法之一连接到
证书注册服务器
Kerberos -- 使用 Kerberos SSL 凭据
UserName -- 使用指定帐户作为 SSL 凭据
ClientCertificate -- 使用 X.509 证书 SSL 凭据
AllowRenewalsOnly -- 只能通过此 URL 将续订请求
提交到此 CA
AllowKeyBasedRenewal -- 允许使用在
AD 中没有关联帐户的证书。这仅适用于
ClientCertificate 和 AllowRenewalsOnly 模式。
[-config Machine\CAName]
修饰符:
AllowRenewalsOnly
AllowKeyBasedRenewal
CertUtil [选项] -deleteEnrollmentServer Kerberos | UserName | ClientCertificate
删除注册服务器应用程序
如有必要,请为指定的 CA 删除注册服务器
应用程序和应用程序池。此命令不删除二进制文件或程序包
客户端可通过以下身份验证方法之一连接到
证书注册服务器
Kerberos -- 使用 Kerberos SSL 凭据
UserName -- 使用指定帐户作为 SSL 凭据
ClientCertificate -- 使用 X.509 证书 SSL 凭据。
[-config Machine\CAName]
CertUtil [选项] -addPolicyServer Kerberos | UserName | ClientCertificate [KeyBasedRenewal]
添加策略服务器应用程序
如有必要,请添加策略服务器应用程序和应用程序池。此命令
不安装二进制文件或程序包
客户端可通过以下身份验证方法之一连接到
证书策略服务器
Kerberos -- 使用 Kerberos SSL 凭据
UserName -- 使用指定帐户作为 SSL 凭据
ClientCertificate -- 使用 X.509 证书 SSL 凭据
KeyBasedRenewal -- 仅向客户端返回
包含 KeyBasedRenewal 模板的策略。此标记
仅适用于 UserName 和 ClientCertificate
身份验证。
CertUtil [选项] -deletePolicyServer Kerberos | UserName | ClientCertificate [KeyBasedRenewal]
删除策略服务器应用程序
如有必要,请删除策略服务器应用程序和应用程序池。此命令
不删除二进制文件或程序包
客户端可通过以下身份验证方法之一连接到
证书策略服务器
Kerberos -- 使用 Kerberos SSL 凭据
UserName -- 使用指定帐户作为 SSL 凭据
ClientCertificate -- 使用 X.509 证书 SSL 凭据
KeyBasedRenewal -- KeyBasedRenewal 策略服务器。
CertUtil [选项] -oid ObjectId [DisplayName | delete [LanguageId [Type]]]
CertUtil [选项] -oid GroupId
CertUtil [选项] -oid AlgId | AlgorithmName [GroupId]
显示 ObjectId 或设置显示名称
ObjectId -- 要显示或添加显示名称的 ObjectId
GroupId -- 要枚举的 ObjectId 的十进制 GroupId 编号
AlgId -- 要查找的 ObjectId 的十六进制 AlgId
AlgorithmName -- 要查找的 ObjectId 的算法名称
DisplayName -- 要在 DS 中存储的显示名称
delete -- 删除显示名称
LanguageId -- 语言 Id(默认为当前: 2052)
Type -- 要创建的 DS 对象类型: 1 为模板(默认),
2 为颁发策略,3 为应用程序策略
用 -f 来创建 DS 对象。
[-f]
CertUtil [选项] -error ErrorCode
显示错误代码消息文本
CertUtil [选项] -getreg [{ca|restore|policy|exit|template|enroll|chain|PolicyServers}\[ProgId\]][RegistryValueName]
显示注册表值
ca --使用 CA 的注册表项
restore --使用 CA 的还原注册表项
policy --使用策略模块的注册表项
exit --使用第一个退出模块的注册表项
template --使用模板注册表项(对用户模板使用 -user)
enroll --使用注册注册表项(对用户上下文使用 -user)
chain --使用链配置注册表项
PolicyServers --使用策略服务器注册表项
ProgId --使用策略或退出模块的 ProgId (注册表子项名称)
RegistryValueName --注册表值名称(使用 "Name*" 进行前缀匹配)
Value --新的数字、字符串或日期注册表值或文件名。
如果一个数字值以 "+" 或 "-" 开头,则新值中指定的位将在
现有的注册表值中被设置或清除。
如果字符串值以 "+" 或 "-" 开头,并且现有值为
一个 REG_MULTI_SZ 值,则此字符串将添加到
现有的注册表值中,或从中删除。
若要强制创建一个 REG_MULTI_SZ 值,请在字符串值的末尾添加
一个 "\n"。
如果值以 "@" 开头,则值的其余部分为
文件的名称,该文件包含
一个二进制值的十六进制文本表示形式。
如果它未引用一个有效文件,则会将其作为
[Date][+|-][dd:hh] 进行分析 -- 可选日期加上或减去可选
天数和小时数。
如果同时指定两者,则使用加号(+)或减号(-)分隔符。
将 "now+dd:hh" 用于相对于当前时间的日期。
使用 "i64" 作为后缀以创建 REG_QWORD 值。
使用 "chain\ChainCacheResyncFiletime @now" 有效地刷新缓存的 CRL。
[-f] [-Enterprise] [-user] [-GroupPolicy] [-config Machine\CAName]
注册表别名:
Config
CA
Policy PolicyModules
Exit ExitModules
Restore RestoreInProgress
Template Software\Microsoft\Cryptography\CertificateTemplateCache
Enroll Software\Microsoft\Cryptography\AutoEnrollment (Software\Policies\Microsoft\Cryptography\AutoEnrollment)
MSCEP Software\Microsoft\Cryptography\MSCEP
Chain Software\Microsoft\Cryptography\OID\EncodingType 0\CertDllCreateCertificateChainEngine\Config
PolicyServers Software\Microsoft\Cryptography\PolicyServers (Software\Policies\Microsoft\Cryptography\PolicyServers)
Crypt32 System\CurrentControlSet\Services\crypt32
NGC System\CurrentControlSet\Control\Cryptography\Ngc
AutoUpdate Software\Microsoft\SystemCertificates\AuthRoot\AutoUpdate
Passport Software\Policies\Microsoft\PassportForWork
MDM Software\Microsoft\Policies\PassportForWork
CertUtil [选项] -setreg [{ca|restore|policy|exit|template|enroll|chain|PolicyServers}\[ProgId\]]RegistryValueName 值
设置注册表值
ca --使用 CA 的注册表项
restore --使用 CA 的还原注册表项
policy --使用策略模块的注册表项
exit --使用第一个退出模块的注册表项
template --使用模板注册表项(对用户模板使用 -user)
enroll --使用注册注册表项(对用户上下文使用 -user)
chain --使用链配置注册表项
PolicyServers --使用策略服务器注册表项
ProgId --使用策略或退出模块的 ProgId (注册表子项名称)
RegistryValueName --注册表值名称(使用 "Name*" 进行前缀匹配)
Value --新的数字、字符串或日期注册表值或文件名。
如果一个数字值以 "+" 或 "-" 开头,则新值中指定的位将在
现有的注册表值中被设置或清除。
如果字符串值以 "+" 或 "-" 开头,并且现有值为
一个 REG_MULTI_SZ 值,则此字符串将添加到
现有的注册表值中,或从中删除。
若要强制创建一个 REG_MULTI_SZ 值,请在字符串值的末尾添加
一个 "\n"。
如果值以 "@" 开头,则值的其余部分为
文件的名称,该文件包含
一个二进制值的十六进制文本表示形式。
如果它未引用一个有效文件,则会将其作为
[Date][+|-][dd:hh] 进行分析 -- 可选日期加上或减去可选
天数和小时数。
如果同时指定两者,则使用加号(+)或减号(-)分隔符。
将 "now+dd:hh" 用于相对于当前时间的日期。
使用 "i64" 作为后缀以创建 REG_QWORD 值。
使用 "chain\ChainCacheResyncFiletime @now" 有效地刷新缓存的 CRL。
[-f] [-Enterprise] [-user] [-GroupPolicy] [-config Machine\CAName]
CertUtil [选项] -delreg [{ca|restore|policy|exit|template|enroll|chain|PolicyServers}\[ProgId\]][RegistryValueName]
删除注册表值
ca --使用 CA 的注册表项
restore --使用 CA 的还原注册表项
policy --使用策略模块的注册表项
exit --使用第一个退出模块的注册表项
template --使用模板注册表项(对用户模板使用 -user)
enroll --使用注册注册表项(对用户上下文使用 -user)
chain --使用链配置注册表项
PolicyServers --使用策略服务器注册表项
ProgId --使用策略或退出模块的 ProgId (注册表子项名称)
RegistryValueName --注册表值名称(使用 "Name*" 进行前缀匹配)
Value --新的数字、字符串或日期注册表值或文件名。
如果一个数字值以 "+" 或 "-" 开头,则新值中指定的位将在
现有的注册表值中被设置或清除。
如果字符串值以 "+" 或 "-" 开头,并且现有值为
一个 REG_MULTI_SZ 值,则此字符串将添加到
现有的注册表值中,或从中删除。
若要强制创建一个 REG_MULTI_SZ 值,请在字符串值的末尾添加
一个 "\n"。
如果值以 "@" 开头,则值的其余部分为
文件的名称,该文件包含
一个二进制值的十六进制文本表示形式。
如果它未引用一个有效文件,则会将其作为
[Date][+|-][dd:hh] 进行分析 -- 可选日期加上或减去可选
天数和小时数。
如果同时指定两者,则使用加号(+)或减号(-)分隔符。
将 "now+dd:hh" 用于相对于当前时间的日期。
使用 "i64" 作为后缀以创建 REG_QWORD 值。
使用 "chain\ChainCacheResyncFiletime @now" 有效地刷新缓存的 CRL。
[-f] [-Enterprise] [-user] [-GroupPolicy] [-config Machine\CAName]
注册表别名:
Config
CA
Policy PolicyModules
Exit ExitModules
Restore RestoreInProgress
Template Software\Microsoft\Cryptography\CertificateTemplateCache
Enroll Software\Microsoft\Cryptography\AutoEnrollment (Software\Policies\Microsoft\Cryptography\AutoEnrollment)
MSCEP Software\Microsoft\Cryptography\MSCEP
Chain Software\Microsoft\Cryptography\OID\EncodingType 0\CertDllCreateCertificateChainEngine\Config
PolicyServers Software\Microsoft\Cryptography\PolicyServers (Software\Policies\Microsoft\Cryptography\PolicyServers)
Crypt32 System\CurrentControlSet\Services\crypt32
NGC System\CurrentControlSet\Control\Cryptography\Ngc
AutoUpdate Software\Microsoft\SystemCertificates\AuthRoot\AutoUpdate
Passport Software\Policies\Microsoft\PassportForWork
MDM Software\Microsoft\Policies\PassportForWork
CertUtil [选项] -ImportKMS UserKeyAndCertFile [CertId]
为密钥存档导入用户密钥和证书到服务器数据库
UserKeyAndCertFile -- 包含要存档的用户私钥和
证书的数据文件。这可以是任何以下内容:
交换密钥管理服务器(KMS)导出文件
PFX 文件
CertId -- KMS 导出文件解密证书匹配令牌。请参见 -store。
使用 -f 导入不是由 CA 颁发的证书。
[-f] [-Silent] [-split] [-config Machine\CAName] [-p 密码] [-symkeyalg SymmetricKeyAlgorithm[,KeyLength]]
CertUtil [选项] -ImportCert Certfile [ExistingRow]
将证书文件导入数据库
使用 ExistingRow 导入证书以代替相同密钥的挂起的请求。
使用 -f 来导入非 CA 颁发的证书。
还可能需要配置 CA 来支持外部证书导入:
certutil -setreg ca\KRAFlags +KRAF_ENABLEFOREIGN
[-f] [-config Machine\CAName]
CertUtil [选项] -GetKey SearchToken [RecoveryBlobOutFile]
CertUtil [选项] -GetKey SearchToken script OutputScriptFile
CertUtil [选项] -GetKey SearchToken retrieve | recover OutputFileBaseName
检索存档的私钥恢复 Blob,生成恢复脚本 或恢复存档的密钥
script -- 生成脚本以检索和恢复密钥(找到多个匹配的恢复代理
或未指定输出文件
时的默认行为)。
retrieve -- 检索一个或多个密钥恢复 Blob (恰好找到一个匹配的恢复代理
并指定了输出文件
时的默认行为)
recover -- 在一个步骤中检索和恢复私钥(需要密钥
恢复代理证书和私钥)
SearchToken -- 用于选择要恢复的密钥和证书。
可以是任何以下内容:
证书公用名称
证书序列号
证书 SHA-1 哈希(指纹)
证书 KeyId SHA-1 哈希(使用者密钥标识符)
请求者名称(domain\user)
UPN (user@domain)
RecoveryBlobOutFile -- 包含一个证书链和关联的私钥
的输出文件,仍加密到一个或多个密钥恢复
代理证书。
OutputScriptFile -- 包含批处理脚本以检索和恢复私钥
的输出文件。
OutputFileBaseName -- 输出文件基本名称。
对于 retrieve,将截断任何扩展,并为每个密钥恢复 Blob
附加证书特定的字符串和 .rec
扩展。每个文件包含一个证书链和关联的
私钥,仍加密到一个或多个密钥恢复代理
证书。
对于 recover,将截断任何扩展并附加 .p12
扩展。包含恢复的证书链和关联的
私钥(存储为 PFX 文件)。
[-f] [-UnicodeText] [-Silent] [-config Machine\CAName] [-p 密码] [-ProtectTo SAMNameAndSIDList] [-csp 提供程序]
CertUtil [选项] -RecoverKey RecoveryBlobInFile [PFXOutFile [RecipientIndex]]
恢复存档的私钥
[-f] [-user] [-Silent] [-split] [-p 密码] [-ProtectTo SAMNameAndSIDList] [-csp 提供程序] [-t 超时]
CertUtil [选项] -MergePFX PFXInFileList PFXOutFile [Modifiers]
合并 PFX 文件
PFXInFileList -- 以逗号分隔的 PFX 输入文件列表
PFXOutFile -- PFX 输出文件
Modifiers -- 包含下列一项或多项的逗号分隔列表:
ExtendedProperties -- 包含扩展属性
NoEncryptCert -- 不加密证书
EncryptCert -- 加密证书
在命令行中指定的密码是以逗号分隔的密码
列表。如果指定多个密码,则最后一个密码将
用于输出文件。如果仅提供一个密码或最后一个密码
为 "*",则系统将提示用户提供输出文件的密码。
[-f] [-user] [-split] [-p 密码] [-ProtectTo SAMNameAndSIDList] [-csp 提供程序]
CertUtil [选项] -ConvertEPF PFXInFileList EPFOutFile [cast | cast-] [V3CACertId][,Salt]
将 PFX 文件转换为 EPF 文件
PFXInFileList -- 逗号分隔的 PFX 输入文件列表
EPF -- EPF 输出文件
cast -- 使用 CAST 64 加密
cast- -- 使用 CAST 64 加密(导出)
V3CACertId -- V3 CA 证书匹配令牌。参阅 -store CertId 描述。
Salt -- EPF 输出文件加密盐字符串
在命令行指定的密码是逗号分隔的密码列表。如果指定了一个以上的密码,
将对输出文件使用最后一个密码。如果只提供了一个密码或最后一个密码
为 "*",将提示用户输出文件的密码。
[-f] [-Silent] [-split] [-dc DCName] [-p 密码] [-csp 提供程序]
CertUtil [选项] -add-chain LogId 证书 OutFile
添加证书链
[-f]
CertUtil [选项] -add-pre-chain LogId 预植证书 OutFile
添加预植证书链
[-f]
CertUtil [选项] -get-sth [LogId]
获取签名树头
[-f]
CertUtil [选项] -get-sth-consistency LogId TreeSize1 TreeSize2
获取签名树头更改
[-f]
CertUtil [选项] -get-proof-by-hash LogId 哈希[TreeSize]
获取哈希证明
[-f]
CertUtil [选项] -get-entries LogId FirstIndex LastIndex
获取项
[-f]
CertUtil [选项] -get-roots LogId
获取根
[-f]
CertUtil [选项] -get-entry-and-proof LogId 索引 [TreeSize]
获取项和证明
[-f]
CertUtil [选项] -VerifyCT 证书 SCT [precert]
验证证书 SCT
[-f]
CertUtil [选项] -?
显示该用法消息
选项:
-nullsign -- 将数据的哈希用作签名
-f -- 强制覆盖
-Enterprise -- (-ent) 使用本地计算机 Enterprise 注册表证书存储
-user -- 使用 HKEY_CURRENT_USER 项或证书存储
-GroupPolicy -- (-gp) 使用组策略证书存储
-ut -- 显示用户模板
-mt -- 显示计算机模板
-Unicode -- 以 Unicode 编写重定向输出
-UnicodeText -- 以 Unicode 编写输出文件
-gmt -- 将时间显示为 GMT
-seconds -- 用秒和毫秒显示时间
-Silent -- (-q) 用无声标志获得 crypt 上下文
-split -- 分离嵌入的 ASN.1 元素,并保存到文件
-v -- 详细操作
-privatekey -- 显示密码和私钥数据
-pin PIN -- 智能卡 PIN
-urlfetch -- 检索并验证 AIA 证书和 CDP CRL
-config Machine\CAName -- CA 和计算机名称字符串
-PolicyServer URLOrId -- 策略服务器 URL 或 ID
对于选择 U/I,使用 -PolicyServer -
对于所有策略服务器,使用 -PolicyServer *
-Anonymous -- 使用匿名 SSL 凭据
-Kerberos -- 使用 Kerberos SSL 凭据
-ClientCertificate ClientCertId -- 使用 X.509 证书 SSL 凭据
对于选择 U/I,使用 -ClientCertificate -
-UserName 用户名 -- 使用指定帐户作为 SSL 凭据
对于选择 U/I,使用 -UserName -
-Cert CertId -- 签名证书
-dc DCName -- 目标为一个特定的域控制器
-restrict 限制列表 -- 以逗号分隔的限制列表
每个限制都由一个列名称、一个关系操作符和
一个整数常量、字符串或日期组成。列名称前面可以带有
加号或减号,以表示排列顺序。
例如:
"RequestId = 47"
"+RequesterName >= a, RequesterName < b"
"-RequesterName > DOMAIN, Disposition = 21"
-out 栏列表 -- 以逗号分隔的栏列表
-p 密码 -- 密码
-ProtectTo SAMNameAndSIDList -- 以逗号分隔的 SAM 名称/SID 列表
-csp 提供程序 -- 提供程序
KSP -- "Microsoft Software Key Storage Provider"
TPM -- "Microsoft Platform Crypto Provider"
NGC -- "Microsoft Passport Key Storage Provider"
SC -- "Microsoft Smart Card Key Storage Provider"
-Location AlternateStorageLocation -- (-loc) AlternateStorageLocation
AIK -- "C:\ProgramData\Microsoft\Crypto\PCPKSP\WindowsAIK"
-t 超时 -- URL 取指令超时(毫秒)
-symkeyalg SymmetricKeyAlgorithm[,KeyLength] -- 对称密钥算法的名称和可选密钥长度,例如: AES、128 或 3DES
-sid WELL_KNOWN_SID_TYPE -- 数字 SID
22 -- 本地系统
23 -- 本地服务
24 -- 网络服务
-sslpolicy ServerName -- 与 ServerName 匹配的 SSL 策略
哈希算法: MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512
CertUtil -? -- 显示动词列表(命名列表)
CertUtil -dump -? -- 显示 "dump" 动词的帮助文本
CertUtil -v -? -- 显示所有动词的所有帮助文本
CertUtil: -? 命令成功完成。
3 示例
C:\>certutil -hashfile C:\Bluetooth.apk MD5
MD5 的 C:\Bluetooth.apk 哈希:
086239cbe1e45656904043422ae50b58
CertUtil: -hashfile 命令成功完成。