Вопрос по signtool, certificate, code-signing – Как подписать MSI?

7

Моя компания хочет предотвратить всплывающее окно UAC, которое появляется, когда клиенты устанавливают наш продукт. Мы приобрели сертификат у VeriSign (VeriSign Class 3 Code Signing 2010 CA), и я получил файл MyCompany.cer.

Я установил сертификат, дважды щелкнув по нему и выбрав «Личные» хранить. Теперь он появляется в оснастке «Сертификаты» вместе с несколькими другими сертификатами. Оснастка говорит, что ее целевым назначением является «Подписание кода». Я получил хэш SHA1, скопировав отпечаток большого пальца.

Я пытаюсь подписать MSI с этой командой:

signtool sign /sha1 <thumbprint> myInstaller.msi

и получить сообщение & quot; Ошибка SignTool: не найдено сертификатов, соответствующих всем заданным критериям. & quot;

Если я остановлюсь на "/ sha1" Я получаю список большинства других сертификатов в магазине - те, которые говорят, что их целевое назначение - & lt; All & gt; & quot; Мой сертификат не указан.

Что я делаю неправильно?

Я пробовал все в этом и других постах, но безрезультатно. Я заметил, что & quot; Key Usage & quot; элемент на вкладке "Сведения" имеет маленький желтый "!" условное обозначение. Значение равно «Цифровая подпись (80)». Sisiutl
возможный дубликатHow do I sign exes and dlls with my code signing certificate Ken White

Ваш Ответ

1   ответ
3

Это довольно старый, но я надеюсь, что это кому-то поможет.

Прежде всего вам нужно проверить, что у вас есть закрытый ключ для этого .cer-файла. Если вы откроете его, вы должны увидеть где-нибудь значок ключа, за которым следует предложение:

You have a private key for this certificate

Обратите внимание, что вы должны установить сертификат на тот же компьютер, где была сгенерирована пара ключей (и CSR). Очевидно, что если у вас нет закрытого ключа, вы ничего не можете подписать.

Похожие вопросы