У меня есть EXE- файл, который я хочу подписать, чтобы Windows не предупредила конечного пользователя о приложении от «неизвестного издателя». Я не разработчик Windows. Рассматриваемое приложение является заставкой, созданной из приложения, которое генерирует приложения-заставки. Таким образом, я не имею никакого влияния на то, как создается файл.
Я уже узнал, что мне понадобится сертификат подписи кода от ЦС, такого как Verisign или instantssl.com. Что я не понимаю, так это то, что мне нужно сделать (если это вообще возможно), чтобы подписать мой EXE-файл. Какое простое объяснение?
Ответ Мела Грина взял меня дальше, но signtool просит меня указать, какой сертификат использовать в любом случае. Могу ли я получить бесплатный сертификат подписи кода, чтобы проверить, будет ли это работать для меня вообще?
Также, пожалуйста, укажите, какой тип сертификата является правильным. Большинство сайтов упоминают только «подписывание кода» и говорят о подписи приложений, которые фактически скомпилированы пользователем. Это не тот случай для меня.
источник
Ответы:
Вы можете попробовать использовать Microsoft Sign Tool
Вы загружаете его как часть Windows SDK для Windows Server 2008 и .NET 3.5. После загрузки вы можете использовать его из командной строки следующим образом:
Это подписывает один исполняемый файл, используя «лучший сертификат» из доступных. (Если у вас нет сертификата, он покажет сообщение об ошибке SignTool.)
Или вы можете попробовать:
Это запустит мастер, который поможет вам подписать ваше заявление. (Этот параметр недоступен после Windows SDK 7.0.)
Если вы хотите получить сертификат, который вы можете использовать для проверки процесса подписания исполняемого файла, вы можете использовать инструмент .NET Makecert .
Средство создания сертификатов (Makecert.exe)
После того как вы создали собственный сертификат и использовали его для подписи своего исполняемого файла, вам нужно будет вручную добавить его в качестве доверенного корневого центра сертификации для вашего компьютера, чтобы UAC сообщал пользователю, управляющему им, что он из надежного источника. Важно . Установка сертификата в качестве ROOT CA поставит под угрозу конфиденциальность ваших пользователей. Посмотри, что случилось с DELL. Вы можете найти больше информации для этого как в коде, так и в Windows:
Вопрос переполнения стека Установите сертификаты в хранилище сертификатов локального пользователя Windows в C #
Установка самоподписанного сертификата в качестве доверенного корневого центра сертификации в Windows Vista
Надеюсь, это предоставит больше информации для тех, кто пытается это сделать!
источник
У меня был такой же сценарий в моей работе, и вот наши выводы
Первое, что вам нужно сделать, это получить сертификат и установить его на свой компьютер, вы можете либо купить его в Центре сертификации, либо создать его с помощью makecert .
Вот плюсы и минусы 2 варианта
Купить сертификат
Создать сертификат с помощью Makecert
Подпишите исполняемый файл
Есть два способа подписать файл, который вы хотите:
Использование сертификата, установленного на компьютере
signtool.exe sign / a / s MY / sha1 sha1_thumbprint_value / t http://timestamp.verisign.com/scripts/timstamp.dll / v "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"
Проверьте свою подпись
Способ 1: использование signtool
Перейдите: Пуск> Выполнить Тип CMD> нажмите OK. В командной строке введите каталог, в котором существует signtool. Выполните следующее:
signtool.exe проверяет / pa / v "C: \ filename.dll"
Способ 2. Использование Windows
Щелкните правой кнопкой мыши подписанный файл. Выберите «Свойства». Выберите вкладку «Цифровые подписи». Подпись будет отображаться в разделе списка подписей.
Я надеюсь, что это может помочь вам
Источники:
https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/ms537361(v=vs.85)
https://www.digicert.com/code-signing/signcode-signtool-command-line.htm
https://knowledge.symantec.com/support/code-signing-support/index?page=content&id=SO15544&actp=search&viewlocale=en_US
https://msdn.microsoft.com/en-us/library/windows/desktop/aa386968(v=vs.85).aspx
источник
Вы можете получить
бесплатныйдешевый сертификат подписи кода от Certum, если вы занимаетесь разработкой с открытым исходным кодом.Я использую их сертификат более года, и он избавляется от сообщения неизвестного издателя из Windows.
Что касается подписи кода, я использую signtool.exe из скрипта, подобного этому:
источник
Журнал ASP ASPects имеет подробное описание того, как подписывать код (Вы должны быть участником, чтобы прочитать статью). Вы можете скачать его через http://www.asp-shareware.org/
Вот ссылка на описание, как вы можете сделать свой собственный тестовый сертификат .
Это также может быть интересно.
источник
Другой вариант, если вам нужно подписать исполняемый файл на Linux-боксе, это использовать цифровой код из инструментов проекта Mono . Это поддерживается в Ubuntu .
источник
Ссылка 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. После (чтобы добавить свой знак в ваше приложение)
signtool sign / s YourName YourApp.exe
источник
И еще один вариант, если вы разрабатываете для Windows 10, но у вас не установлен Microsoft signtool.exe, вы можете использовать Bash на Ubuntu в Windows, чтобы подписать ваше приложение. Вот беги вниз:
https://blog.synapp.nz/2017/06/16/code-signing-a-windows-application-on-linux-on-windows/
источник
osslsigncode
также доступно в разделеcygwin
, так что если вы уже используете это (как я), то вы можете войти в свою текущую среду, а не переключаться на WSL.Используйте следующую ссылку, чтобы подписать файл .exe (setup / installer) (подписать exe / setup файл без использования Microsoft setup signtool)
https://ebourg.github.io/jsign/#files
Пример команды java -jar jsign-2.0.jar - хранилище ключей keystore.jks "- псевдоним псевдонима --storepass пароль MyInstaller.exe
Работал на меня :)
источник
Это не прямой ответ на вопрос, но он тесно связан (и, надеюсь, полезен), так как рано или поздно программист сунет руку в кошелек:
Итак, цены на подпись EV:
1 год 350 долларов США + (скрытая плата 50 долларов США)
2 год 600 долларов США
3 год 750 долларов США
[www.ksoftware.net] [3]
eToken отправляется в виде USB-накопителя. Читатель не нужен.
Вы фактически покупаете у Comodo (Sectigo)
1 год 350 евро
3 года 799 евро
sklep.certum.pl
1 год $ 499 USD
3 год $ 897 USD
sectigo.ru
1 год $ 410 всего
2 года $ 760 всего
3 года $ 950 всего
www.globalsign.com
1 год: 600 долларов (это было 104 доллара)
3 год:?
www.digicert.com
1 год: $ 700
3 года: нелепо дорого
[ https://trustcenter.websecurity.symantec.com/]
Больше цен здесь:
https://cheapsslsecurity.com/sslproducts/codesigningcertificate.html
Также смотрите ссылку, добавленную Эриком Кастрильо: cheapsslsecurity.com/sslproducts/codesigningcertificate.html
источник