Как подписать установщик, чтобы предотвратить предупреждение UAC Vista

У меня есть приложение, которое мне нужно распространить, и я хочу подписать его, чтобы избежать предупреждений UAC в Vista. На данный момент я вижу это...

http://img694.imageshack.us/img694/7289/uac.jpg

Я использую визуальную студию для создания установщика, но приложение не было написано в .net. Нужно ли подписывать как .msi, так и .exe, содержащиеся в .msi? Какой ключ мне нужен и где его взять? В настоящее время я думаю о Verisign, хотя они дорогие, мне нужно, чтобы им доверяли. Когда я получу ключ, как мне подписать? Если я правильно понимаю, al.exe и signtool.exe предназначены для сборок .net, верно? Спасибо!


person Mike    schedule 17.02.2010    source источник


Ответы (1)


Этот конкретный диалог самый страшный. Есть менее страшный вариант, если заявление подписано, но не скреплено подписью. (т.е. он подписан только вами). Чтобы полностью обойти это, вам действительно нужна контрасигнатура.

Windows содержит список доверенных корневых центров сертификации (MMC.EXE > Добавить оснастку > Сертификаты > Учетная запись компьютера). Некоторые из них предназначены для «подписания кода», что означает, что эти центры сертификации могут подписать вашу подпись. Verisign находится в этом списке. Если вы работаете в корпоративном Интернете, подпись компании также может быть там.

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

Но, как я уже говорил ранее, вы также можете подписать неконтрподписью. Это весьма полезно для тестирования, а также для понимания всего процесса и выполнения автоматизированных сборок.

person MSalters    schedule 17.02.2010
comment
У вас есть ссылка или веб-сайт, который показывает, как это работает? Я не могу найти много документации об этом. Спасибо - person mmmm; 06.03.2010
comment
Вы видели msdn.microsoft.com/en-us/ библиотека/ms537361(VS.85).aspx ? Текущая технология подписи кода Microsoft называется Authenticode, которая должна открыть еще несколько сайтов. - person MSalters; 08.03.2010