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

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

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

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

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

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

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

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


Итак, чтобы сжать все это, мой вопрос / вопросы:

А) Вопрос собственно в том, что у моего ехе нет издателя?

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


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

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


person Harman Punchi    schedule 14.08.2020    source источник
comment
Эти сертификаты недешевы, и вы обычно получаете их, если у вас есть зарегистрированная компания. Нет смысла в сертификатах, если почти каждый может создавать сертификаты с любым содержимым из ничего и самостоятельно их подписывать. Итак, первый вопрос: у вас есть компания? Вы действительно хотите пройти через все этапы покупки сертификатов для вашей компании?   -  person Tin Nguyen    schedule 14.08.2020
comment
Вот в чем дело... Мне нужен дешевый и доступный способ получения сертификата, но я не хочу вдаваться во все хлопоты и расходы, связанные с покупкой сертификата для моей компании. Вы хоть представляете, сколько это стоит? может стоить вообще?   -  person Harman Punchi    schedule 14.08.2020
comment
Моя последняя цифра была 400 долларов в год.   -  person Tin Nguyen    schedule 14.08.2020
comment
Это слишком много для меня! Наверняка должен быть другой способ   -  person Harman Punchi    schedule 14.08.2020


Ответы (1)


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

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

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

person Masoud Rahimi    schedule 16.08.2020