Windows上自带的渗透测试工具:Certutil 导入自定义证书

今天客户有一个导入自定义信任证书的问题需要解决,然后我想直接用命令一下执行就可以完成方法,所以用了以下的方法顺利执行。

Certutil 是 Windows 操作系统上预装的工具,可用于 校验文件MD5、SHA1、SHA256,下载恶意文件和免杀。
Certutil 是一个 CLI 程序,可用于转储和显示证书颁发机构(CA),配置信息,证书服务, CA 组件的备份和还原以及验证证书、密钥对和证书链,它作为证书服务的一部分安装。

将证书导入本地计算机上的受信任的根证书颁发机构:

CERTUTIL -addstore -enterprise -f -v root “somCertificat.cer”
在本地计算机上将pfx导入Personal

CERTUTIL -f -p somePassword -importpfx “somePfx.pfx”
将pfx导入本地计算机上的受信任人 – 链接到importpfx.exe

importpfx.exe -f “somePfx.pfx” -p “somePassword” -t MACHINE -s “TRUSTEDPEOPLE”
将证书导入本地计算机上的受信任人员

Certutil -addstore -f “TRUSTEDPEOPLE” “someCertificate.cer”

其他用法解释

动作:
-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 — 管理智能卡根证书

-verifykeys — 验证公/私钥集
-verify — 验证证书,CRL 或链
-verifyCTL — 验证 AuthRoot 或不允许的证书 CTL
-syncWithWU — 与 Windows 更新同步
-generateSSTFromWU — 通过 Windows 更新生成 SST
-generatePinRulesCTL — 生成捆绑规则 CTL
-downloadOcsp — 下载 OCSP 响应并写入目录
-generateHpkpHeader — 使用指定文件或目录中的证书生成 HPKP 头
-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=

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=…?cACertificate?one?objectClass=certificationAuthority”(查看根证书)

“ldap:///CN=CAName,CN=Certification Authorities,CN=Public Key Services,CN=Services,CN=Configuration,DC=…?cACertificate?base?objectClass=certificationAuthority”(修改根证书)

“ldap:///CN=CAName,CN=MachineName,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,DC=…?certificateRevocationList?base?objectClass=cRLDistributionPoint”(查看 CRL)

“ldap:///CN=NTAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration,DC=…?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=…?cACertificate?one?objectClass=certificationAuthority”(查看根证书)

“ldap:///CN=CAName,CN=Certification Authorities,CN=Public Key Services,CN=Services,CN=Configuration,DC=…?cACertificate?base?objectClass=certificationAuthority”(修改根证书)

“ldap:///CN=CAName,CN=MachineName,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,DC=…?certificateRevocationList?base?objectClass=cRLDistributionPoint”(查看 CRL)

“ldap:///CN=NTAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration,DC=…?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=…?cACertificate?one?objectClass=certificationAuthority”(查看根证书)

“ldap:///CN=CAName,CN=Certification Authorities,CN=Public Key Services,CN=Services,CN=Configuration,DC=…?cACertificate?base?objectClass=certificationAuthority”(修改根证书)

“ldap:///CN=CAName,CN=MachineName,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,DC=…?certificateRevocationList?base?objectClass=cRLDistributionPoint”(查看 CRL)

“ldap:///CN=NTAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration,DC=…?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。使用 * 匹配所有项目
使用 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 [选项] -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 [选项] -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 -? — 显示所有动词的所有帮助文本

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部