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"

Windows上自带的渗透测试工具: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 -- 管理智能卡根证书

-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 -? -- 显示所有动词的所有帮助文本

*文章为作者独立观点,不代表上流阁立场
本文由 江风成 授权 上流阁 发表,并经上流阁编辑。转载此文章须经作者同意,并请附上出处(上流阁)及本页链接。原文链接https://www.o6c.com/news/2022/09/01/1545.html
发表评论

坐等沙发
相关文章
Windows批处理.BAT文件种特殊符号转义输出的问题解决方案
Windows批处理.BAT文件种特殊符号转义输…
Linux crontab 的常用定时方式
Linux crontab 的常用定时方式
linux 修改文件和文件夹所有者和组
linux 修改文件和文件夹所有者和组
人情似纸张张薄,世事如棋局局新
人情似纸张张薄,世事如棋局局新
网络用语 抖音 吃猫  什么意思? 网络词汇百科
网络用语 抖音 吃猫 什么意思? 网络词…
此生无悔入段子,2018年4月10日 内涵段子TV再见
此生无悔入段子,2018年4月10日 内涵段…
javaweb开发程序员php开发,微信开发。接受定制开发

最新评论