从SST通过脚本安装证书,自动选择证书存储

问题描述 投票:0回答:2

我正在运行一个程序来检测Windows中的更改,它查找的其中一个更改是由于程序而添加的证书,问题是我一直看到由于Windows Auth Root Updater导致的误报。我对此的解决方法是从Windows获取证书列表

Certutil -generateSSTFromWU <filename>

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

有没有办法从脚本中实现这一目标?

感谢您的建议和帮助!

powershell certificate
2个回答
0
投票

我能够找到一个有点工作的解决方案,使用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 Time-Stamp PCA 2010 Microsoft Code Signing PCA 2010 微软时间戳PCA GlobalSign时间戳CA - G2 Microsoft Code Signing PCA

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

编辑:我将打开一个新问题,因为问题已经变成了另一个主题。

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


0
投票

我认为rootsupd.exe实际上来自微软。从我能记住的,虽然它只是使用MS最佳猜测方法实际存储证书。我建议使用PowerShell的Import-Certificate,因为你可以实际指定你想要它的商店。

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

© www.soinside.com 2019 - 2024. All rights reserved.