Windows管理数字证书支持查看、导出、导入、删除及验证,涵盖当前用户与本地计算机存储;certmgr.msc用于非管理员查看用户证书,certlm.msc需管理员权限管理全系统证书,PowerShell和certutil支持批量操作与自动化,MMC可自定义多账户统一控制台。

在Windows系统中管理数字证书,意味着你能查看、导出、导入、删除或验证本地计算机和当前用户账户下的所有证书,包括个人证书、受信任的根证书、中间CA证书等,确保系统通信安全与身份可信。
用certmgr.msc管理当前用户证书
这是最轻量、无需管理员权限的方式,适用于普通用户查看自己安装的客户端证书、网站导出的PFX证书、邮件签名证书等。
1. 按 Win + R 打开运行对话框。
2. 输入 certmgr.msc 并回车——这会直接加载当前登录用户的全部证书存储,不涉及系统级配置。
3. 左侧展开“证书-当前用户”,再依次点开“个人→证书”或“受信任的根证书颁发机构→证书”等子项。
4. 右侧列表中双击任意证书,可查看指纹、公钥算法、扩展用途、有效期至等关键字段;若证书已过期,【NotAfter 字段显示的日期早于今天】,即为失效凭证。
用certlm.msc管理本地计算机证书(需管理员权限)
当证书用于IIS站点绑定、SQL Server加密连接、Windows服务身份认证等系统级场景时,必须操作“本地计算机”存储,否则服务无法识别证书。
方法一:图形化快速进入
1. 右键“开始”按钮 → 选择“Windows 终端(管理员)”。
2. 运行:certlm.msc
3. 左侧展开“证书-本地计算机”,进入“个人→证书”目录。
4. 右键目标证书 → “所有任务” → “管理私钥”,可分配读取权限给特定服务账户(如IIS_IUSRS)。
方法二:命令行一键调用(避免UAC弹窗干扰)
以管理员身份运行PowerShell,执行:
Start-Process certlm.msc -Verb RunAs
该命令强制提升权限并启动控制台,比手动右键更稳定,尤其在远程桌面或自动化脚本中。
用PowerShell批量筛选与导出证书
当你需要从数百个证书中快速定位某类证书(比如所有2025年10月后过期的IIS证书),图形界面效率极低,PowerShell是唯一可行方案。
第一步:列出本地计算机个人存储中所有证书
Get-ChildItem -Path Cert:\LocalMachine\My
第二步:筛选出已过期的证书(含详细时间比对)
Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.NotAfter -lt (Get-Date)} | Format-List Subject, Thumbprint, NotAfter
第三步:导出指定指纹的证书为CER(仅公钥,无风险)
$cert = Get-ChildItem -Path Cert:\LocalMachine\My -Thumbprint "A1B2C3D4E5F67890..."
$cert | Export-Certificate -FilePath "C:\backup\expired-web.cer" -Type CERT
注意:导出PFX必须带私钥,需额外提供密码参数;而CER导出无需密码,【一旦执行Export-Certificate,输出文件即为标准X.509格式,可直接被其他设备信任】。
用MMC自定义多账户证书控制台
当你同时要对比“当前用户”、“本地计算机”、“某服务账户(如NT SERVICE\W3SVC)”三处证书是否一致时,逐个打开三个控制台效率太低,MMC支持一次集成。
1. Win + R → 输入 mmc → 回车启动空控制台。
2. 文件 → 添加/删除管理单元。
3. 左侧选“证书”,点击“添加 >”。
→ 弹窗中选“我的用户账户” → 完成;
→ 再次添加 → 选“计算机账户” → 下一步 → 选“本地计算机” → 完成;
→ 如需加服务账户,第三次添加时选“服务账户”,再输入对应服务名(如W3SVC)。
4. 点击“确定”,左侧即出现分组树形结构,可并排展开不同上下文的“个人→证书”,一眼比对主题名与指纹是否重复或冲突。
用certutil命令行快速验证与安装证书
certutil是Windows原生工具,无需.NET Framework或PowerShell环境,适合在精简版系统、恢复环境或CI/CD流水线中调用。
方法一:查看证书文件内容(不安装,仅诊断)
certutil -dump C:\temp\server.crt
方法二:将CRT证书安装到本地计算机的受信任根存储(跳过图形确认)
certutil -addstore -f ROOT C:\temp\ca.crt
【-f 参数强制覆盖同名证书,避免因已存在而静默失败】
方法三:检查证书链完整性(判断是否缺少中间证书)
certutil -verify C:\temp\fullchain.pem
方法四:列出当前用户个人存储所有证书(纯文本,适合日志采集)
certutil -store MY


















