Как создать сертификат, подписанный кодом, для exe-программы?

#python #exe #pyinstaller #windows-defender #digicert

#python #exe #pyinstaller #windows-защитник #digicert

Вопрос:

Я нахожусь в очень сложной ситуации, и я попытаюсь объяснить это так хорошо, как только смогу. Я изложу свою проблему в кратких пронумерованных шагах и в конце сведу это к одному или нескольким четким вопросам.

  1. Я написал программу на python. (другие языки не используются)

  2. Затем я использовал pyinstaller для преобразования этого файла в .exe, чтобы я мог поделиться им со своими друзьями без необходимости устанавливать python или любые другие внешние библиотеки.

  3. Когда мои друзья попытались загрузить этот exe-файл, их Windows Defender и другие антивирусы обнаружили, что это не позволило им запустить программу.

  4. Я провел некоторое исследование и узнал, что в моем exe-файле не был добавлен издатель, и поэтому Защитник Windows запретил пользователям открывать файл.

  5. Чтобы добавить издателя, я узнал, что мне нужно подписать это цифровой подписью и создать сертификат, поэтому я установил программу под названием DigiCert, которая могла бы добавлять сертификат в exe.

Проблема в том, что я не знаю, как бесплатно создать сертификат, подписанный кодом, для моей программы.


Итак, чтобы свести все это к минимуму, мой вопрос / questions:

А) Действительно ли проблема в том, что у моего exe-файла нет издателя?

Б) Если да, то как мне создать сертификат, подписанный кодом, чтобы добавить его?


Я надеюсь, вы понимаете проблему, и я был бы признателен за любые комментарии или ответы.

Большое спасибо

Комментарии:

1. Эти сертификаты стоят недешево, и вы обычно получаете один, если у вас зарегистрированная компания. Нет смысла в сертификатах, если практически любой пользователь может создавать сертификаты с любым содержимым из ничего и самостоятельно подписывать их. Итак, первый вопрос: у вас есть компания? Вы действительно хотите пройти через покупку сертификатов для своей компании?

2. Вот в чем дело… Мне нужен дешевый и доступный способ получения сертификата, но я не хочу вдаваться во все хлопоты и расходы, связанные с покупкой сертификата для моей компании, вы представляете, сколько это может стоить в целом?

3. Моя последняя цифра составляла 400 долларов в год.

4. Это слишком много для меня! Наверняка должен быть другой способ

Ответ №1:

По умолчанию создаваемые вами приложения не имеют подписанного сертификата. Однако, если вы хотите подписать его, у вас должна быть действительная подпись. Вы можете использовать официальные инструменты, такие как signtool, для подписи ваших файлов.

Другой способ — создать самозаверяющий сертификат и попросить пользователя установить его; таким образом, ваши исполняемые файлы будут действительны для компьютера пользователя. Кроме того, вы можете автоматизировать установку сертификата в мастере установки вашего собственного приложения, чтобы исправить процесс установки сертификата.

P.S. Предупреждение с помощью Защитника Windows иногда можно обойти. Основная причина заключается в том, что при создании приложения с помощью PyInstaller оно будет использовать встроенный загрузчик по умолчанию, что может вызвать предупреждение. Поэтому попробуйте перестроить загрузчик и воссоздать ваше приложение заново.