2015-03-16 3 views
2

Я всегда пользуюсь InnoSetup для упаковки и публикации. Пользователи загружают приложение, например, по ссылке: https://oursite.com/codesigned/mysetup.exeMicrosoft SmartScreen - приостановлено с помощью установщика InnoSetup?

До сих пор это всегда сработало, но в последнее время мне нужно обновить сертификат подписи кода, потому что срок его действия истек. После обновления у меня проблема SmartScreen, каждый пользователь загружает приложение и получает этот Smartscreen, который раньше не был.

enter image description here

Я использовал signtoo.exe verify /pa innosetup-made-myexe.exe и это показывает успешным, и я сделал проверку с Windows Application Certification Kit, который показывает его ПРОШЛИ, но с WARNNINGS, все эти WARNNINGS в основном генерируются InnoSetup.

enter image description here enter image description here

Здесь вы можете найти выход, где его показывая ПРЕДОСТЕРЕЖЕНИЯ на InnoSetup EXEs:

https://docs.google.com/document/d/11frW_GxI0xSVcrAXh4_rqcKBQSaermAlpYKj4xzQi4o/pub

Как я могу исправить эту проблему?

(все еще не уверен, что его подписание под стандартным кодом или подписание кода EV? Я уже использовал Стандартную подпись кода в течение нескольких лет, он всегда работал, я могу перейти на подписание кода EV, но как я могу убедиться, что его компилятор не InnoSetup проблема, поскольку вы можете видеть, что WARNNINGS показаны в URL-адресе выше в InnoSetup)

Просьба сообщить.

EDIT:

проверить, если его InnoSetup или код вопрос подписания (см https://stackoverflow.com/a/29067585/285594) я сделал следующее:

а) от microsoft я скачал файл вызова winqual.exe который не нуждается в innosetup

код б) я подписал winqual.exe и загружены на мой же сервере

c) я загрузил тот же файл в Internet Explorer, и он работает, не показывая мне SmarTScreen

Имеет ли смысл сейчас, если innosetup является основной причиной этой проблемы?

+0

Это не имеет никакого отношения к сертификации приложений Windows. Вы, вероятно, не подписали это правильно. Сам пакет установки должен быть подписан. Щелкните правой кнопкой мыши пакет, щелкните «Запуск от имени администратора», он должен отображать информацию о подписи кода. –

+0

Подписание кода Сертификация была выполнена, а также подтверждена с помощью знака signtool.exe – YumYumYum

+0

В таком случае я не знаю, о чем говорю. Я не столкнулся с проблемами с ошибкой SafeSEHCheck и т. Д. –

ответ

2

Если вы уверены, что проблема связана с неподписанным деинсталлятором, убедитесь, что вы указали директиву SignTool вашего проекта InnoSetup. И убедитесь, что директива SignedUninstaller имеет значение по умолчанию yes.

Цитирование http://www.jrsoftware.org/ishelp/index.php?topic=setup_signtool

Задает имя и параметры Sign Tool, чтобы использовать цифровую подпись Setup (и удаление, если SignedUninstaller установлен в yes). Когда программа установки имеет действительную цифровую подпись, пользователи не будут видеть предупреждение «неизвестной программы» при ее запуске.


Если вы хотите установить NXCOMPAT и DYNAMICBASE флаги деинсталлятора, вы можете создать sign.bat пакетный файл, который и вызывает signtool.exe и editbin.exe:

@echo off 
editbin.exe /NXCOMPAT /DYNAMICBASE %1 
signtool.exe sign ... %1 

Призывы должны быть в этом порядок, иначе editbin.exe нарушает подпись.

Затем используйте sign.bat вместо signtool.exe в директиве SignTool.

Хотя я действительно не думаю, что это необходимо и ничего не помогает.

+0

Инструменты> Инструменты знака> Добавить> Название инструмента знака: Martin Prikryl> Команда инструмента знака: «Что я здесь набираю?» применимо ли это ко всем файлам .exe + .dll + и т. д.? – YumYumYum

+1

См. Приведенную выше ссылку для примеров команд. Это относится к исполняемым файлам, производимым только InnoSetup (установщик и деинсталлятор). Перед компиляцией установщика вы сами подписываете свои установленные исполняемые файлы. –

+0

ОК - я понимаю, это означает, что он сделает файл setup.exe, а затем сам файл signtool.exe + uninstaller.exe тоже, что мне нужно. – YumYumYum

1

Я думаю, что это нормальное поведение. Когда ваше программное обеспечение собирает достаточно «любит» = загружает или устанавливает, SmrtScreen автоматически отключит это сообщение.

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

+0

Я ждал 2 недели. Это не нормальное время ожидания + я упомянул, что когда я использовал slappy.exe, который не был сделан innosetup и применялся с кодовым знаком, он работает. Так что это еще не говорит мне «нравится» = загрузки – YumYumYum

Смежные вопросы