在命令提示符下输入"certutil /?"来查看完整的命令参数列表和使用说明。certutil 是一个命令行工具,主要用于管理证书存储、证书请求、证书吊销列表等。PowerShell 通过 Get-ChildItem、Export-PfxCertificate 等命令也提供了类似的功能,甚至在某些情况下更加灵活。
certutil
命令与 PowerShell 命令的对应表格化对比:
功能 | certutil 命令 | PowerShell 命令 |
---|---|---|
查看证书 | certutil -store My |
Get-ChildItem -Path Cert:\CurrentUser\My 或 Cert:\LocalMachine\My |
导出证书 | certutil -exportPFX -p <password> <cert> <file.pfx> |
Export-PfxCertificate -Cert <certificate> -FilePath <path> -Password <password> |
导入证书 | certutil -importPFX <file.pfx> |
Import-PfxCertificate -FilePath <path> -Password <password> -CertStoreLocation <location> |
查看证书吊销列表 | certutil -viewstore -revoke |
PowerShell 本身不支持此功能,但可以通过调用相应 API 或使用外部模块实现 |
显示证书 | certutil -displaycert <cert> |
Get-Item -Path Cert:\CurrentUser\My\<cert> |
删除证书 | certutil -delstore My <cert> |
Remove-Item -Path Cert:\CurrentUser\My\<cert> |
列出证书存储位置 | certutil -store |
Get-ChildItem -Path Cert:\ |
更新证书存储 | certutil -update |
通过 PowerShell 管理工具(如 Update-Help 或手动更新) |
查看证书链 | certutil -verify |
PowerShell 自身没有直接命令,但可通过使用证书对象的 Verify() 方法来执行 |
生成自签名证书 | 无直接对应,通常手动生成 | New-SelfSignedCertificate |
生成证书请求 | certutil -newreq <template> <cert.req> |
New-SelfSignedCertificate -DnsName <name> -CertStoreLocation <location> 或使用更复杂的 CSR 生成命令 |
显示证书信息 | certutil -v -dump <cert> |
Get-Item -Path Cert:\CurrentUser\My\<cert> 然后查看属性 |
安装根证书 | certutil -addstore Root <cert> |
Import-Certificate -FilePath <path> -CertStoreLocation Cert:\LocalMachine\Root |
说明:
- PowerShell 在处理证书时提供了更细粒度的控制,可以直接操作证书存储库,并通过丰富的命令和参数配置与证书管理相关的功能。
certutil
是一个命令行工具,主要用于管理证书存储、证书请求、证书吊销列表等。PowerShell 通过Get-ChildItem
、Export-PfxCertificate
等命令也提供了类似的功能,甚至在某些情况下更加灵活。- 在 PowerShell 中,
Cert:\
是证书存储的路径,可以使用 PowerShell 提供的强大命令操作证书、导入导出、删除和查看证书。
New-SelfSignedCertificate
是 PowerShell 中用来创建自签名证书的命令。自签名证书是一种由自己生成和签署的证书,而不是由受信任的证书颁发机构(CA)签发的。通常用于开发、测试或者本地环境中,而不是在生产环境中。
语法:
New-SelfSignedCertificate -CertStoreLocation <StoreLocation> -DnsName <DNSName> -KeySpec <KeySpec> -KeyExportPolicy <ExportPolicy> -NotAfter <ValidityPeriod>
主要参数:
-
-CertStoreLocation:指定证书存储位置。这个位置是存放证书的地方,比如:
Cert:\LocalMachine\My
:用于本地计算机的个人证书库。Cert:\CurrentUser\My
:用于当前用户的个人证书库。Cert:\LocalMachine\Root
:根证书存储。
-
-DnsName:指定证书的主题名称(通常是域名)。例如,你可能会使用它来生成一个 Web 服务器的证书,输入域名作为 DNS 名称。
-
-KeySpec:指定证书的密钥用途。常见的值是:
KeyExchange
:用于加密交换。Signature
:用于签名操作。
-
-KeyExportPolicy:指定是否允许导出密钥。通常,
Exportable
表示可以导出密钥,而NonExportable
则不能导出。 -
-NotAfter:指定证书的有效期,通常以日期表示。例如,
-NotAfter (Get-Date).AddYears(1)
表示证书有效期为1年。
示例:
创建一个自签名证书并存储在本地计算机的个人证书库中:
New-SelfSignedCertificate -CertStoreLocation "Cert:\LocalMachine\My" -DnsName "www.example.com" -KeySpec KeyExchange -NotAfter (Get-Date).AddYears(1)
这将创建一个自签名证书,存储在 LocalMachine\My
证书库中,并且该证书的有效期为一年。
导出证书:
如果你希望导出证书(例如,导出为 .pfx
文件),可以使用以下命令:
$cert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -like "*www.example.com*" }
Export-PfxCertificate -Cert $cert -FilePath "C:\Path\To\ExportedCert.pfx" -Password (ConvertTo-SecureString -String "YourPassword" -Force -AsPlainText)
为什么使用自签名证书?
- 开发与测试:对于开发和测试环境,自签名证书是一个便捷且无需依赖外部证书颁发机构的解决方案。
- 内网使用:在内网环境中,通常不需要 CA 认证的证书,可以通过自签名证书来提供安全通信。
- 节省成本:通过自签名证书,可以避免购买和续订来自受信任证书机构的证书。
不过,在生产环境中,推荐使用由可信的证书颁发机构(CA)签发的证书,以确保通信的安全性和广泛的信任。
certutil
命令与 PowerShell 命令的对应表格化对比:
功能 | certutil 命令 | PowerShell 命令 |
---|---|---|
查看证书 | certutil -store My |
Get-ChildItem -Path Cert:\CurrentUser\My 或 Cert:\LocalMachine\My |
导出证书 | certutil -exportPFX -p <password> <cert> <file.pfx> |
Export-PfxCertificate -Cert <certificate> -FilePath <path> -Password <password> |
导入证书 | certutil -importPFX <file.pfx> |
Import-PfxCertificate -FilePath <path> -Password <password> -CertStoreLocation <location> |
查看证书吊销列表 | certutil -viewstore -revoke |
PowerShell 本身不支持此功能,但可以通过调用相应 API 或使用外部模块实现 |
显示证书 | certutil -displaycert <cert> |
Get-Item -Path Cert:\CurrentUser\My\<cert> |
删除证书 | certutil -delstore My <cert> |
Remove-Item -Path Cert:\CurrentUser\My\<cert> |
列出证书存储位置 | certutil -store |
Get-ChildItem -Path Cert:\ |
更新证书存储 | certutil -update |
通过 PowerShell 管理工具(如 Update-Help 或手动更新) |
查看证书链 | certutil -verify |
PowerShell 自身没有直接命令,但可通过使用证书对象的 Verify() 方法来执行 |
生成自签名证书 | 无直接对应,通常手动生成 | New-SelfSignedCertificate |
生成证书请求 | certutil -newreq <template> <cert.req> |
New-SelfSignedCertificate -DnsName <name> -CertStoreLocation <location> 或使用更复杂的 CSR 生成命令 |
显示证书信息 | certutil -v -dump <cert> |
Get-Item -Path Cert:\CurrentUser\My\<cert> 然后查看属性 |
安装根证书 | certutil -addstore Root <cert> |
Import-Certificate -FilePath <path> -CertStoreLocation Cert:\LocalMachine\Root |
说明:
- PowerShell 在处理证书时提供了更细粒度的控制,可以直接操作证书存储库,并通过丰富的命令和参数配置与证书管理相关的功能。
certutil
是一个命令行工具,主要用于管理证书存储、证书请求、证书吊销列表等。PowerShell 通过Get-ChildItem
、Export-PfxCertificate
等命令也提供了类似的功能,甚至在某些情况下更加灵活。- 在 PowerShell 中,
Cert:\
是证书存储的路径,可以使用 PowerShell 提供的强大命令操作证书、导入导出、删除和查看证书。
C:\Users\Administrator>certutil -v -?
动词:
certutil -dump -- 转储配置信息或文件
certutil -dumpPFX -- 转储 PFX 结构
certutil -asn -- 分析 ASN.1 文件
certutil -decodehex -- 解码十六进制编码的文件
certutil -decode -- 解码 Base64 编码的文件
certutil -encode -- 将文件编码为 Base64
certutil -deny -- 拒绝挂起的申请
certutil -resubmit -- 重新提交挂起的申请
certutil -setattributes -- 为挂起申请设置属性
certutil -setextension -- 为挂起申请设置扩展
certutil -revoke -- 吊销证书
certutil -isvalid -- 显示当前证书部署
certutil -getconfig -- 获取默认配置字符串
certutil -ping -- Ping Active Directory 证书服务申请接口
certutil -pingadmin -- Ping Active Directory 证书服务管理接口
certutil -CAInfo -- 显示 CA 信息
certutil -ca.cert -- 检索 CA 的证书
certutil -ca.chain -- 检索 CA 的证书链
certutil -GetCRL -- 获取 CRL
certutil -CRL -- 发布新的 CRL [或仅增量 CRL]
certutil -shutdown -- 关闭 Active Directory 证书服务
certutil -installCert -- 安装证书颁发机构证书
certutil -renewCert -- 续订证书颁发机构证书
certutil -schema -- 转储证书架构
certutil -view -- 转储证书视图
certutil -db -- 转储原始数据库
certutil -deleterow -- 删除服务器数据库行
certutil -backup -- 备份 Active Directory 证书服务
certutil -backupDB -- 备份 Active Directory 证书服务数据库
certutil -backupKey -- 备份 Active Directory 证书服务证书和私钥
certutil -restore -- 还原 Active Directory 证书服务
certutil -restoreDB -- 还原 Active Directory 证书服务数据库
certutil -restoreKey -- 还原 Active Directory 证书服务证书和私钥
certutil -importPFX -- 导入证书和私钥
certutil -dynamicfilelist -- 显示动态文件列表
certutil -databaselocations -- 显示数据库位置
certutil -hashfile -- 通过文件生成并显示加密哈希
certutil -store -- 转储证书存储
certutil -enumstore -- 枚举证书存储
certutil -addstore -- 将证书添加到存储
certutil -delstore -- 从存储删除证书
certutil -verifystore -- 验证存储中的证书
certutil -repairstore -- 修复密钥关联,或者更新证书属性或密钥安全描述符
certutil -viewstore -- 转储证书存储
certutil -viewdelstore -- 从存储删除证书
certutil -UI -- 调用 CryptUI
certutil -attest -- 验证密钥证明请求
certutil -dsPublish -- 将证书或 CRL 发布到 Active Directory
certutil -ADTemplate -- 显示 AD 模板
certutil -Template -- 显示注册策略模板
certutil -TemplateCAs -- 显示模板的 CA
certutil -CATemplates -- 显示 CA 的模板
certutil -SetCASites -- 管理 CA 的站点名称
certutil -enrollmentServerURL -- 显示、添加或删除与 CA 关联的注册服务器 URL
certutil -ADCA -- 显示 AD CA
certutil -CA -- 显示注册策略 CA
certutil -Policy -- 显示注册策略
certutil -PolicyCache -- 显示或删除注册策略缓存项目
certutil -CredStore -- 显示、添加或删除凭据存储项目
certutil -InstallDefaultTemplates -- 安装默认的证书模板
certutil -URLCache -- 显示或删除 URL 缓存项目
certutil -pulse -- 以脉冲方式执行自动注册事件或 NGC 任务
certutil -MachineInfo -- 显示 Active Directory 计算机对象信息
certutil -DCInfo -- 显示域控制器信息
certutil -EntInfo -- 显示企业信息
certutil -TCAInfo -- 显示 CA 信息
certutil -SCInfo -- 显示智能卡信息
certutil -SCRoots -- 管理智能卡根证书
certutil -DeleteHelloContainer -- 删除 Hello 登录容器。
** 在使用此选项后, 用户需要注销才能完成。**
certutil -verifykeys -- 验证公/私钥集
certutil -verify -- 验证证书,CRL 或链
certutil -verifyCTL -- 验证 AuthRoot 或不允许的证书 CTL
certutil -syncWithWU -- 与 Windows 更新同步
certutil -generateSSTFromWU -- 通过 Windows 更新生成 SST
certutil -generatePinRulesCTL -- 生成捆绑规则 CTL
certutil -downloadOcsp -- 下载 OCSP 响应并写入目录
certutil -generateHpkpHeader -- 使用指定文件或目录中的证书生成 HPKP 头
certutil -flushCache -- 刷新选定进程(例如 lsass.exe)中的指定缓存
certutil -addEccCurve -- 添加 ECC 曲线
certutil -deleteEccCurve -- 删除 ECC 曲线
certutil -displayEccCurve -- 显示 ECC 曲线
certutil -sign -- 重新签名 CRL 或证书
certutil -vroot -- 创建/删除 Web 虚拟根和文件共享
certutil -vocsproot -- 创建/删除 OCSP Web Proxy 的 Web 虚拟根
certutil -addEnrollmentServer -- 添加注册服务器应用程序
certutil -deleteEnrollmentServer -- 删除注册服务器应用程序
certutil -addPolicyServer -- 添加策略服务器应用程序
certutil -deletePolicyServer -- 删除策略服务器应用程序
certutil -oid -- 显示 ObjectId 或设置显示名称
certutil -error -- 显示错误代码消息文本
certutil -getreg -- 显示注册表值
certutil -setreg -- 设置注册表值
certutil -delreg -- 删除注册表值
certutil -ImportKMS -- 为密钥存档导入用户密钥和证书到服务器数据库
certutil -ImportCert -- 将证书文件导入数据库
certutil -GetKey -- 检索存档的私钥恢复 Blob,生成恢复脚本 或恢复存档的密钥
certutil -RecoverKey -- 恢复存档的私钥
certutil -MergePFX -- 合并 PFX 文件
certutil -ConvertEPF -- 将 PFX 文件转换为 EPF 文件
certutil -add-chain -- (-AddChain) 添加证书链
certutil -add-pre-chain -- (-AddPrechain) 添加预植证书链
certutil -get-sth -- (-GetSTH) 获取签名树头
certutil -get-sth-consistency -- (-GetSTHConsistency) 获取签名树头更改
certutil -get-proof-by-hash -- (-GetProofByHash) 获取哈希证明
certutil -get-entries -- (-GetEntries) 获取项
certutil -get-roots -- (-GetRoots) 获取根
certutil -get-entry-and-proof -- (-GetEntryAndProof) 获取项和证明
certutil -VerifyCT -- 验证证书 SCT
certutil -? -- 显示该用法消息
用法:
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=...?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。使用 * 匹配所有项目
使用 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: -? 命令成功完成。
C:\Users\Administrator>CertUtil -?
动词:
-dump -- 转储配置信息或文件
-dumpPFX -- 转储 PFX 结构
-asn -- 分析 ASN.1 文件
-decodehex -- 解码十六进制编码的文件
-decode -- 解码 Base64 编码的文件
-encode -- 将文件编码为 Base64
-deny -- 拒绝挂起的申请
-resubmit -- 重新提交挂起的申请
-setattributes -- 为挂起申请设置属性
-setextension -- 为挂起申请设置扩展
-revoke -- 吊销证书
-isvalid -- 显示当前证书部署
-getconfig -- 获取默认配置字符串
-ping -- Ping Active Directory 证书服务申请接口
-pingadmin -- Ping Active Directory 证书服务管理接口
-CAInfo -- 显示 CA 信息
-ca.cert -- 检索 CA 的证书
-ca.chain -- 检索 CA 的证书链
-GetCRL -- 获取 CRL
-CRL -- 发布新的 CRL [或仅增量 CRL]
-shutdown -- 关闭 Active Directory 证书服务
-installCert -- 安装证书颁发机构证书
-renewCert -- 续订证书颁发机构证书
-schema -- 转储证书架构
-view -- 转储证书视图
-db -- 转储原始数据库
-deleterow -- 删除服务器数据库行
-backup -- 备份 Active Directory 证书服务
-backupDB -- 备份 Active Directory 证书服务数据库
-backupKey -- 备份 Active Directory 证书服务证书和私钥
-restore -- 还原 Active Directory 证书服务
-restoreDB -- 还原 Active Directory 证书服务数据库
-restoreKey -- 还原 Active Directory 证书服务证书和私钥
-importPFX -- 导入证书和私钥
-dynamicfilelist -- 显示动态文件列表
-databaselocations -- 显示数据库位置
-hashfile -- 通过文件生成并显示加密哈希
-store -- 转储证书存储
-enumstore -- 枚举证书存储
-addstore -- 将证书添加到存储
-delstore -- 从存储删除证书
-verifystore -- 验证存储中的证书
-repairstore -- 修复密钥关联,或者更新证书属性或密钥安全描述符
-viewstore -- 转储证书存储
-viewdelstore -- 从存储删除证书
-UI -- 调用 CryptUI
-attest -- 验证密钥证明请求
-dsPublish -- 将证书或 CRL 发布到 Active Directory
-ADTemplate -- 显示 AD 模板
-Template -- 显示注册策略模板
-TemplateCAs -- 显示模板的 CA
-CATemplates -- 显示 CA 的模板
-SetCASites -- 管理 CA 的站点名称
-enrollmentServerURL -- 显示、添加或删除与 CA 关联的注册服务器 URL
-ADCA -- 显示 AD CA
-CA -- 显示注册策略 CA
-Policy -- 显示注册策略
-PolicyCache -- 显示或删除注册策略缓存项目
-CredStore -- 显示、添加或删除凭据存储项目
-InstallDefaultTemplates -- 安装默认的证书模板
-URLCache -- 显示或删除 URL 缓存项目
-pulse -- 以脉冲方式执行自动注册事件或 NGC 任务
-MachineInfo -- 显示 Active Directory 计算机对象信息
-DCInfo -- 显示域控制器信息
-EntInfo -- 显示企业信息
-TCAInfo -- 显示 CA 信息
-SCInfo -- 显示智能卡信息
-SCRoots -- 管理智能卡根证书
-DeleteHelloContainer -- 删除 Hello 登录容器。
** 在使用此选项后, 用户需要注销才能完成。**
-verifykeys -- 验证公/私钥集
-verify -- 验证证书,CRL 或链
-verifyCTL -- 验证 AuthRoot 或不允许的证书 CTL
-syncWithWU -- 与 Windows 更新同步
-generateSSTFromWU -- 通过 Windows 更新生成 SST
-generatePinRulesCTL -- 生成捆绑规则 CTL
-downloadOcsp -- 下载 OCSP 响应并写入目录
-generateHpkpHeader -- 使用指定文件或目录中的证书生成 HPKP 头
-flushCache -- 刷新选定进程(例如 lsass.exe)中的指定缓存
-addEccCurve -- 添加 ECC 曲线
-deleteEccCurve -- 删除 ECC 曲线
-displayEccCurve -- 显示 ECC 曲线
-sign -- 重新签名 CRL 或证书
-vroot -- 创建/删除 Web 虚拟根和文件共享
-vocsproot -- 创建/删除 OCSP Web Proxy 的 Web 虚拟根
-addEnrollmentServer -- 添加注册服务器应用程序
-deleteEnrollmentServer -- 删除注册服务器应用程序
-addPolicyServer -- 添加策略服务器应用程序
-deletePolicyServer -- 删除策略服务器应用程序
-oid -- 显示 ObjectId 或设置显示名称
-error -- 显示错误代码消息文本
-getreg -- 显示注册表值
-setreg -- 设置注册表值
-delreg -- 删除注册表值
-ImportKMS -- 为密钥存档导入用户密钥和证书到服务器数据库
-ImportCert -- 将证书文件导入数据库
-GetKey -- 检索存档的私钥恢复 Blob,生成恢复脚本 或恢复存档的密钥
-RecoverKey -- 恢复存档的私钥
-MergePFX -- 合并 PFX 文件
-ConvertEPF -- 将 PFX 文件转换为 EPF 文件
-add-chain -- (-AddChain) 添加证书链
-add-pre-chain -- (-AddPrechain) 添加预植证书链
-get-sth -- (-GetSTH) 获取签名树头
-get-sth-consistency -- (-GetSTHConsistency) 获取签名树头更改
-get-proof-by-hash -- (-GetProofByHash) 获取哈希证明
-get-entries -- (-GetEntries) 获取项
-get-roots -- (-GetRoots) 获取根
-get-entry-and-proof -- (-GetEntryAndProof) 获取项和证明
-VerifyCT -- 验证证书 SCT
-? -- 显示该用法消息
CertUtil -? -- 显示动词列表(命名列表)
CertUtil -dump -? -- 显示 "dump" 动词的帮助文本
CertUtil -v -? -- 显示所有动词的所有帮助文本
CertUtil: -? 命令成功完成。
C:\Users\Administrator> CertUtil -dump -?
用法:
CertUtil [选项] [-dump]
CertUtil [选项] [-dump] [文件]
转储配置信息或文件
选项:
-f -- 强制覆盖
-user -- 使用 HKEY_CURRENT_USER 项或证书存储
-Unicode -- 以 Unicode 编写重定向输出
-gmt -- 将时间显示为 GMT
-seconds -- 用秒和毫秒显示时间
-Silent -- (-q) 用无声标志获得 crypt 上下文
-split -- 分离嵌入的 ASN.1 元素,并保存到文件
-v -- 详细操作
-privatekey -- 显示密码和私钥数据
-pin PIN -- 智能卡 PIN
-p 密码 -- 密码
-t 超时 -- URL 取指令超时(毫秒)
-sid WELL_KNOWN_SID_TYPE -- 数字 SID
22 -- 本地系统
23 -- 本地服务
24 -- 网络服务
CertUtil -? -- 显示动词列表(命名列表)
CertUtil -dump -? -- 显示 "dump" 动词的帮助文本
CertUtil -v -? -- 显示所有动词的所有帮助文本
命令 | 描述 | 示例应用场景与命令示例 |
---|---|---|
CertUtil -dump | 转储配置信息或文件 | 场景:查看证书配置或文件详细信息。 示例:CertUtil -dump mycert.cer 用于显示证书的详细信息。 |
CertUtil -dumpPFX | 转储 PFX 结构 | 场景:导出 PFX 文件中的证书及其私钥。 示例:CertUtil -dumpPFX mycert.pfx 转储 PFX 文件的内容。 |
CertUtil -asn | 分析 ASN.1 文件 | 场景:分析证书的 ASN.1 编码格式。 示例:CertUtil -asn mycert.der 将 DER 格式证书分析为 ASN.1 编码。 |
CertUtil -decodehex | 解码十六进制编码的文件 | 场景:将十六进制编码的证书文件转回原始格式。 示例:CertUtil -decodehex encoded_cert.hex 解码十六进制编码的证书。 |
CertUtil -decode | 解码 Base64 编码的文件 | 场景:将 Base64 编码的证书文件还原为原始格式。 示例:CertUtil -decode encoded_cert.b64 解码 Base64 编码证书。 |
CertUtil -encode | 将文件编码为 Base64 | 场景:将证书或私钥文件转换为 Base64 格式。 示例:CertUtil -encode mycert.pem 将证书编码为 Base64。 |
CertUtil -deny | 拒绝挂起的申请 | 场景:拒绝证书请求。 示例:CertUtil -deny 1234 拒绝编号为 1234 的证书申请。 |
CertUtil -resubmit | 重新提交挂起的申请 | 场景:重新提交被挂起的证书申请。 示例:CertUtil -resubmit 1234 重新提交编号为 1234 的证书申请。 |
CertUtil -setattributes | 为挂起申请设置属性 | 场景:为待处理的证书申请设置属性。 示例:CertUtil -setattributes 1234 -attrib "Subject=example" 为申请设置属性。 |
CertUtil -setextension | 为挂起申请设置扩展 | 场景:为待处理的证书申请添加扩展。 示例:CertUtil -setextension 1234 -ext "KeyUsage=DigitalSignature" 。 |
CertUtil -revoke | 吊销证书 | 场景:撤销不再使用的证书。 示例:CertUtil -revoke mycert.cer 撤销名为 mycert.cer 的证书。 |
CertUtil -isvalid | 显示当前证书部署 | 场景:检查证书是否有效并已正确部署。 示例:CertUtil -isvalid mycert.cer 检查证书有效性。 |
CertUtil -getconfig | 获取默认配置字符串 | 场景:获取证书服务的当前配置。 示例:CertUtil -getconfig 获取当前配置的详细信息。 |
CertUtil -ping | Ping Active Directory 证书服务申请接口 | 场景:检查与证书服务的连接状态。 示例:CertUtil -ping 测试连接证书服务的状态。 |
CertUtil -pingadmin | Ping Active Directory 证书服务管理接口 | 场景:检查与证书服务管理接口的连接状态。 示例:CertUtil -pingadmin 测试连接证书服务管理接口的状态。 |
CertUtil -CAInfo | 显示 CA 信息 | 场景:查看证书颁发机构 (CA) 的详细信息。 示例:CertUtil -CAInfo 查看 CA 信息。 |
CertUtil -ca.cert | 检索 CA 的证书 | 场景:获取 CA 的证书用于验证和信任。 示例:CertUtil -ca.cert 获取证书颁发机构的证书。 |
CertUtil -ca.chain | 检索 CA 的证书链 | 场景:查看证书颁发机构的证书链。 示例:CertUtil -ca.chain 获取 CA 的证书链。 |
CertUtil -GetCRL | 获取 CRL | 场景:获取证书吊销列表 (CRL)。 示例:CertUtil -GetCRL 下载最新的 CRL 文件。 |
CertUtil -CRL | 发布新的 CRL [或仅增量 CRL] | 场景:发布新的证书吊销列表。 示例:CertUtil -CRL 发布新的证书吊销列表。 |
CertUtil -shutdown | 关闭 Active Directory 证书服务 | 场景:停止证书服务以进行维护。 示例:CertUtil -shutdown 关闭 Active Directory 证书服务。 |
CertUtil -installCert | 安装证书颁发机构证书 | 场景:将证书颁发机构证书添加到受信任根证书存储。 示例:CertUtil -installCert ca_cert.pem 安装 CA 证书。 |
CertUtil -renewCert | 续订证书颁发机构证书 | 场景:续订 CA 的证书以避免过期。 示例:CertUtil -renewCert 续订证书。 |
CertUtil -schema | 转储证书架构 | 场景:查看证书架构的详细信息。 示例:CertUtil -schema 显示证书架构信息。 |
CertUtil -view | 转储证书视图 | 场景:查看证书的详细视图。 示例:CertUtil -view mycert.cer 转储证书的视图信息。 |
CertUtil -db | 转储原始数据库 | 场景:查看证书存储的原始数据库内容。 示例:CertUtil -db 转储数据库内容。 |
CertUtil -deleterow | 删除服务器数据库行 | 场景:从证书存储中删除特定行。 示例:CertUtil -deleterow 1234 删除行编号为 1234 的数据。 |
CertUtil -backup | 备份 Active Directory 证书服务 | 场景:备份证书服务数据库以防丢失。 示例:CertUtil -backup backup_file.bak 备份证书数据库。 |
CertUtil -backupDB | 备份 Active Directory 证书服务数据库 | 场景:备份证书服务数据库。 示例:CertUtil -backupDB db_backup.bak 备份证书数据库。 |
CertUtil -restore | 还原 Active Directory 证书服务 | 场景:恢复证书服务配置和数据。 示例:CertUtil -restore restore_file.bak 恢复证书服务。 |
CertUtil -restoreDB | 还原 Active Directory 证书服务数据库 | 场景:恢复证书服务数据库。 示例:CertUtil -restoreDB db_restore.bak 恢复证书数据库。 |
CertUtil -importPFX | 导入证书和私钥 | 场景:导入包含证书和私钥的 PFX 文件。 示例:CertUtil -importPFX mycert.pfx 导入 PFX 文件中的证书和私钥。 |
Certutil命令起源于微软Windows操作系统,用于执行各种与证书和密钥相关的操作。它是Windows操作系统中的一个命令行工具,最初引入于Windows 2000。 Certutil的主要功能包括查看证书、导出证书、导入证书、验证证书链、生成密钥对等。它通常被系统管理员和安全专家用于管理和维护证书、密钥和证书颁发机构(CA)相关的任务。 Certutil命令的设计旨在提供一种灵活而强大的方式来处理数字证书和密钥,以确保系统的安全性和可信度。 |
Certutil命令是Windows操作系统中的一个强大的命令行工具,用于执行各种与证书和密钥相关的操作。底层原理涉及以下几个方面:
Certutil的底层原理和其功能范围使其成为管理和维护Windows证书体系的关键工具。通过与Windows的各种安全组件和存储库进行交互,它为系统管理员和安全专家提供了丰富的工具集,以确保系统的安全性和数字证书的完整性。 |
Certutil命令在Windows操作系统中具有广泛的功能,可以用于处理证书、证书颁发机构(CA)以及密钥相关的操作。以下是Certutil命令的主要功能分类:
Certutil的这些功能通过提供命令行参数来实现,允许用户根据需求执行特定的证书和密钥操作。这些操作对于管理系统的安全性和数字证书的完整性至关重要。 |
Certutil 命令是 Windows 操作系统中用于证书和密钥管理的重要工具,其发展阶段与 Windows 操作系统和证书管理需求的演变密切相关。以下是 Certutil 命令的发展阶段:
在整个发展过程中,Certutil 命令不断适应 Windows 操作系统和企业环境的需求变化。随着 Windows 的安全功能不断升级,Certutil 的命令选项和功能集也不断扩展。通过这些阶段,Certutil 命令成为 Windows 操作系统中强大的证书管理工具,为系统管理员和安全专家提供了广泛的证书和密钥管理功能。 |
Certutil 命令在 Windows 操作系统中的应用场景广泛,涉及证书管理、密钥管理、安全性操作以及与证书颁发机构(CA)交互等方面。以下是 Certutil 命令在不同场景中的主要应用:
Certutil 命令在这些场景中发挥重要作用,为系统管理员和安全专家提供了灵活且强大的工具来管理证书和密钥,确保系统和应用程序的安全性。 |
在命令提示符下输入"certutil /?"来查看完整的命令参数列表和使用说明。
|
这些命令示例涵盖了 |
中级应用的大纲将涵盖一些更高级的功能和操作,如证书颁发机构(CA)管理、证书模板配置等。以下是一个中级应用的大纲:
这些是中级应用大纲中的一些主题,涵盖了在更复杂的证书管理场景下使用 |
Certutil 命令的初级应用大纲:
|
||||||||
Certutil 命令中级应用的大纲:
|
||||||||
Certutil 命令高级应用的大纲:
|
||||||||
Certutil 命令专家级应用的大纲:
|
||||||||
Certutil 命令顶尖级应用的大纲:
|