Добавить сертификат в Trusted Publisher программно - PullRequest
1 голос
/ 01 ноября 2019

У меня есть драйвер USB, который подписан. У меня также есть сертификат, предоставленный издателем. Если я пытаюсь установить драйвер с pnputil

pnputil /add-driver CerttName.cer /install

, меня спрашивают, хочу ли я добавить издателя в Trusted Publishers.

Чтобы избежать этого, я пытался добавить сертификат в Trusted Publishers. программно

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) - нет.

1 Ответ

3 голосов
/ 01 ноября 2019

Проблема в том, что вы устанавливаете сертификат в CurrentUser хранилище, в то время как он должен быть представлен в LocalMachine хранилище. Certutil по умолчанию использует локальный компьютер.

X509Store store = new X509Store(StoreName.TrustedPublisher, StoreLocation.LocalMachine);
...