【问题标题】:Install Certificate via Script from SST, Automatically Select Certificate Store通过脚本从 SST 安装证书,自动选择证书存储
【发布时间】:2018-07-26 12:43:34
【问题描述】:

我正在运行一个检测 Windows 更改的程序,它查找的更改之一是由于程序添加的证书,问题是由于 Windows Auth Root Updater,我一直看到误报。我对此的解决方案是使用

从 Windows 获取证书列表
Certutil -generateSSTFromWU <filename>

并使用脚本安装它。但是,一旦我尝试通过命令行从该文件安装证书,我看到的所有选项都要求我指定一个商店。在证书安装向导中有一个选项根据证书类型自动选择证书存储,如下所示

有没有办法通过脚本来完成?

感谢您的建议和帮助!

【问题讨论】:

    标签: powershell certificate


    【解决方案1】:

    我能够找到一个可行的解决方案,使用rootsupd.exe 文件,我能够摆脱一些出现的证书条目。我提供了一个指向我找到可执行文件的链接。

    https://support.kaspersky.com/13727

    为了运行这个文件,我以管理员身份打开 PowerShell,导航到文件目录,然后执行命令

    .\rootsupd.exe
    

    使用我编写的将证书转储到文本文件的脚本,我能够在确定证书被添加之前和之后进行比较。

    另外,通过使用命令解压rootsupd.exe 包

    rootsupd.exe /c /t:<filepath>
    

    然后您可以在文件路径中找到一个名为 updroots.exe 的文件,当它与 sst 文件一起使用时,

    updroots.exe <sst file>
    

    您可以安装一个 sst 文件。

    但是,我仍然看到很多时间戳证书和代码签名证书,例如:

    Microsoft 时间戳 PCA 2010
    Microsoft 代码签名 PCA 2010
    Microsoft 时间戳 PCA
    GlobalSign 时间戳 CA - G2
    微软代码签名 PCA

    如果有人有任何建议以防止这些被添加或抢先添加它们,那将非常有帮助。我试图禁用 Windows Auth Root 更新,这不是一个方便的解决方案,因为如果程序可能需要证书,我希望看到该添加。尽管禁用了该服务,但我仍然看到这些时间戳和代码戳证书。如果有人有任何建议,那就太好了。

    编辑:我将打开一个新问题,因为该问题已更改为不同的主题。

    新问题:
    Time-Stamp Certificates are Installed, What is Installing them?

    【讨论】:

      【解决方案2】:

      我认为rootupd.exe 实际上来自微软。据我所知,虽然它只是使用 MS 最佳猜测方法来实际存储证书的位置。我建议使用 PowerShell 的 Import-Certificate,因为您实际上可以指定您想要它在哪个存储中。

      至于时间戳证书 CA,您通常会在签署包的证书的副签名中看到它们。对于有效的包,您需要能够验证签名和会签的 CA。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-09
        • 2010-10-01
        • 2012-04-18
        • 2016-03-13
        • 2010-09-23
        • 2017-12-10
        • 2014-01-27
        • 2014-02-28
        相关资源
        最近更新 更多