Windows下使用certutil更新根证书


certutil: 从 Windows Update 下载受信任的根证书

certutil.exe 是 Windows 10 引入的证书管理工具。可用于从 Windows Update 下载根证书的最新列表并将其保存到 SST 文件中。

要在 Windows 10 / 11 上生成 SST 文件,请打开提权过的的命令行并执行以下命令:

certutil -generateSSTFromWU C:\path\to\cert\root\roots.sst

这条命令会更新 SST 文件。

certutil.exe -generateSSTFromWU 根.sst

因此,包含最新根证书列表的 SST 文件将出现在目标目录中。双击打开它。该文件是一个包含受信任根证书的容器。

受信任的 MSFT 根证书的roots.sst 列表

可以从中导出您拥有的任何证书。显然,将证书导出并逐个安装是不合理的。

certutil -syncWithWU命令可用于生成单独的证书文件。通过这种方式获得的证书可以使用 GPO 部署到 Windows 设备上

可以使用 PowerShell 脚本从 SST 文件安装所有证书,并将它们添加到计算机上受信任的根证书列表中:

$sstStore = ( Get-ChildItem -Path C:\ps\rootsupd\roots.sst )  
$sstStore | Import-Certificate -CertStoreLocation Cert:\LocalMachine\Root

运行certmgr.msc管理单元并确保所有证书都已添加到受信任的根证书颁发机构

使用 powershell 在 Windows 中安装 microsoft 受信任的根证书

安装后的 Windows 干净副本在根存储中仅包含少量证书。如果计算机已连接到 Internet,如果您的设备访问在其信任链中具有来自 Microsoft CTL 的指纹的 HTTPS 站点或 SSL 证书,则将自动(按需)安装其余的根证书。因此,通常不需要立即将 Microsoft 信任的所有证书添加到本地证书存储区。  

Windows 中的证书信任列表 (STL)

证书信任列表( CTL )只是由受信任方(在本例中为 Microsoft)签名的数据列表(例如证书哈希)。Windows 客户端会定期从 Windows Update 下载此 CTL,该 CTL 存储所有受信任的根 CA 的哈希值。应该理解,此 CTL 不包含证书本身,仅包含它们的哈希和属性(例如,友好名称)。Windows 设备可以按需从证书信任列表中下载受信任的证书。

您可以手动下载并安装 CTL 文件。为此,请下载文件http://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/authrootstl.cab(每月更新两次)。使用任何归档程序(甚至 Windows 资源管理器),解压authrootstl.cab归档文件的内容。它包含一个authroot.stl文件。

authroot.stl。

authroot.stl 文件是一个容器,其中包含证书信任列表格式的受信任证书指纹列表。

Microsoft 证书信任列表

您可以使用 certutil 命令将此 CTL 文件安装到受信任的根证书颁发机构:

certutil -enterprise -f -v -AddStore "Root" "C:\PS\authroot.stl"

certutil 安装证书受信任列表

root "受信任的根证书颁发机构" CTL 0 添加到存储。 CertUtil:-addstore 命令成功完成。

您还可以使用证书管理控制台(Trust Root Certification Authorities -> Certificates -> All Tasks -> Import)导入证书。使用证书指纹指定 STL 文件的路径。

使用 certmgr snapin 导入受信任的根证书

运行该命令后,证书管理器控制台 ( ) 的受信任的根证书颁发机构certmgr.msc容器中会出现一个新的证书信任列表部分。

certmgr Microsoft 证书信任列表发布者

同样,您可以下载并安装已从根证书程序中删除的已撤销(不允许)证书的列表。为此,请下载disallowedcertstl.cab文件 ( http://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/disallowedcertstl.cab ),将其解压缩,然后将其添加到不受信任的证书存储中命令:

certutil -enterprise -f -v -AddStore disallowed "C:\PS\disallowedcert.stl"


文章作者: sfc9982
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明来源 sfc9982 !
  目录