2

我有一个签名的 USB 驱动程序。我也有出版商提供的证书。如果我尝试安装驱动程序pnputil

pnputil /add-driver CerttName.cer /install

系统询问我是否要将发布者添加到受信任的发布者。

为了避免这种情况,我尝试以编程方式将证书添加到受信任的发布者

string file = @"C:\Certificates\CertName.cer";
X509Store store = new X509Store(StoreName.TrustedPublisher, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadWrite);
store.Add(new X509Certificate2(X509Certificate2.CreateFromCertFile(file)));
store.Close();

证书已添加,但仍提示我将发布者pnputil添加到受信任的发布者。

如果我使用certutil

certutil -addstore "TrustedPublisher" CertName.cer

然后我没有提示pnputil

我还尝试从 certmgr.msc 手动导入证书,但它也不起作用。

我不明白为什么只有certutil工作和其他方式(特别是 X509Store)没有。

4

1 回答 1

5

问题是您正在商店中安装证书CurrentUser,而它必须在LocalMachine商店中提供。Certutil 默认为本地计算机。

X509Store store = new X509Store(StoreName.TrustedPublisher, StoreLocation.LocalMachine);
于 2019-11-01T08:47:07.123 回答