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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从SST通过脚本安装证书,自动选择证书存储相关的知识,希望对你有一定的参考价值。

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

Certutil -generateSSTFromWU <filename>

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

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

感谢您的建议和帮助!

答案

我能够找到一个有点工作的解决方案,使用rootsupd.exe文件,我能够摆脱出现的一些证书条目。我在其中找到了可执行文件的链接。

https://support.kaspersky.com/13727

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

.
ootsupd.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?

另一答案

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

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

以上是关于从SST通过脚本安装证书,自动选择证书存储的主要内容,如果未能解决你的问题,请参考以下文章

openvpn自动创建和吊销用户证书的脚本

利用security命令为电脑安装iOS证书以及描述文件

exchange2016 4节点完整安装之证书配置

Xcode自动选择证书

使用本脚本可以自动批量完成中间节点环境的部署工作,包括:Nginx编译安装添加程序管理脚本设置开机启动反向代理配置证书分发添加iptables规则等

在 Travis 上存储证书文件