Подтвердить что ты не робот

Подписание файла EXE Windows

У меня есть файл EXE, который я хотел бы подписать, чтобы Windows не предупредила конечного пользователя о приложении из "неизвестный издатель". Я не разработчик Windows. Данное приложение представляет собой скринсейвер, созданный приложением, которое генерирует приложения для скринсейверов. Таким образом, я не влияю на то, как создается файл.

Я уже выяснил, что мне понадобится подпись подписи с CA, например Verisign или instantssl.com. Я не понимаю, что мне нужно (если это вообще возможно) подписать мой EXE файл. Что такое простое объяснение?

Ответ "Мел зеленый" взял меня дальше, но signtool хочет, чтобы я указывал, какой сертификат использовать в любом случае. Могу ли я получить бесплатный сертификат подписи кода, чтобы проверить, будет ли это работать для меня вообще?

Также укажите, какой тип сертификата является правильным. Большинство сайтов упоминают только "подписание кода" и говорят о подписании приложений, которые фактически скомпилированы пользователем. Это не относится ко мне.

4b9b3361

Ответ 1

Вы можете попробовать использовать Microsoft Sign Tool

Вы загружаете его как часть Windows SDK для Windows Server 2008 и .NET 3.5. После загрузки вы можете использовать его из командной строки следующим образом:

signtool sign/a MyFile.exe

Это подписывает один исполняемый файл, используя "лучший сертификат" из доступных. (Если у вас нет сертификата, он покажет сообщение об ошибке SignTool.)

Или вы можете попробовать:

Signtool Signwizard

Это запустит мастер, который поможет вам подписать ваше выражение. (Этот параметр недоступен после Windows SDK 7.0.)


Если вы хотите получить сертификат, который вы можете использовать для проверки процесса подписания исполняемого файла, вы можете использовать инструмент .NET Makecert.

Средство создания сертификатов (Makecert.exe)

После того как вы создали собственный сертификат и использовали его для подписи своего исполняемого файла, вам нужно будет вручную добавить его в качестве доверенного корневого центра сертификации для вашего компьютера, чтобы UAC сообщал пользователю, управляющему им, что он из надежного источника. Важно Установка сертификата в качестве ROOT CA поставит под угрозу конфиденциальность ваших пользователей. Посмотри, что случилось с DELL. Вы можете найти больше информации для этого как в коде, так и в Windows:

Надеюсь, это предоставит больше информации для тех, кто пытается это сделать!

Ответ 2

Вы можете получить бесплатный дешевый сертификат подписи кода от Certum, если вы занимаетесь разработкой с открытым исходным кодом.

Я использую их сертификат более года, и он избавляется от сообщения неизвестного издателя из Windows.

Что касается подписи кода, я использую signtool.exe из скрипта, подобного этому:

signtool.exe sign /t http://timestamp.verisign.com/scripts/timstamp.dll /f "MyCert.pfx" /p MyPassword /d SignedFile.exe SignedFile.exe

Ответ 4

У меня был такой же сценарий в моей работе, и вот наши выводы

Первое, что вам нужно сделать, это получить сертификат и установить его на свой компьютер, вы можете либо купить его в Центре сертификации, либо сгенерировать его с помощью makecert.

Вот плюсы и минусы 2 варианта

Купить сертификат

  • Pros
    • Использование сертификата, выданного CA (центром сертификации), гарантирует, что Windows не будет предупреждать конечного пользователя о приложении от "неизвестного издателя" на любом компьютере, использующем сертификат от CA (ОС обычно поставляется с корневыми сертификатами от manny CA )
  • Минусы:
    • При получении сертификата в ЦС взимается дополнительная плата.

Создать сертификат с помощью Makecert

  • Плюсы:
    • Шаги просты, и вы можете поделиться сертификатом с конечными пользователями
  • Минусы:
    • Конечные пользователи должны будут вручную установить сертификат на своих компьютерах, и в зависимости от ваших клиентов это может оказаться невозможным.
    • Сертификаты, генерируемые с помощью makecert, обычно используются для разработки и тестирования, а не для производства

Подпишите исполняемый файл

Есть два способа подписать файл, который вы хотите:

  • Использование сертификата, установленного на компьютере

    signtool.exe sign/a/s MY/sha1 sha1_thumbprint_value/t http://timestamp.verisign.com/scripts/timstamp.dll/v "C:\filename.dll"

    • В этом примере мы используем сертификат, хранящийся в личной папке с отпечатком SHA1 (этот отпечаток взят из сертификата), чтобы подписать файл, расположенный в "C:\filename.dll"
  • Использование файла сертификата

    signtool sign/tr http://timestamp.digicert.com/td sha256/fd sha256/f "c:\path\to\mycert.pfx"/p pfxpassword "c:\path\to\file.exe"

    • В этом примере мы используем сертификат "c:\path\to\mycert.pfx" с паролем pfxpassword, чтобы подписать файл "c:\path\to\file.exe"

Проверьте свою подпись

Способ 1: использование signtool

Перейдите: Пуск> Выполнить Тип CMD> нажмите OK. В командной строке введите каталог, в котором существует signtool. Выполните следующее:

signtool.exe проверяет /pa/v "C:\filename.dll"

Способ 2. Использование Windows

Щелкните правой кнопкой мыши подписанный файл. Выберите "Свойства". Выберите вкладку "Цифровые подписи". Подпись будет отображаться в разделе списка подписей.

Я надеюсь, что это может помочь вам

Источники:

Ответ 6

Ссылка https://steward-fu.github.io/website/driver/wdm/self_sign.htm Примечание: signtool.exe из Microsoft SDK

1.Первое время (для получения частного сертификата)

Makecert -r -pe -ss YourName YourName.cer

certmgr.exe -add YourName.cer -s -r localMachine root

2.After (добавить свой знак в приложение)

signtool sign/s YourName YourApp.exe

Ответ 8

Используйте следующую ссылку, чтобы подписать файл.exe(setup/installer) (подписать exe/файл установки без использования указателя настройки Microsoft setup)

https://ebourg.github.io/jsign/#files

команда образца java -jar jsign-2.0.jar --keystore keystore.jks "--alias псевдоним --storepass пароль MyInstaller.exe

Работал для меня :)

Ответ 9

я могу подписать исполняемый файл, который был ранее подписан (и теперь с просроченным сертификатом)? Или мне нужен оригинальный неподписанный exe файл и применить подпись? У меня может не быть доступа к исходному файлу exe (без подписи).