Почему я все еще вижу неизвестного издателя с подсказкой UAC?

Я сделал свой собственный CA, а затем файл.pfx. Я использую Wix Toolset для сборки установщика.

В файле проекта wix я отредактировал его следующим образом;

<PropertyGroup>
    <SignOutput>true</SignOutput>
</PropertyGroup> 

<PropertyGroup>
    <sourceRoot>$(OutputPath)..\..</sourceRoot>
</PropertyGroup>


<Target Name="SignMsi">
     <Exec Command='"$(sourceRoot)\Keys\signtool.exe" sign /v /f "$(sourceRoot)\Keys\myCA.pfx" /t http://timestamp.verisign.com/scripts/timstamp.dll /v /d "%(SignMsi.Filename)" "@(SignMsi)"' />
</Target>

<Target Name="SignCabs">
    <Exec Command='"$(sourceRoot)\Keys\signtool.exe" sign /v /f "$(sourceRoot)\Keys\myCA.pfx" /t http://timestamp.verisign.com/scripts/timstamp.dll /v /d "%(SignCabs.Filename)" "@(SignCabs)"' />
</Target>

Затем я создаю его в Visual Studio, и он успешно создается, и даже подпись показывает успех.

Тем не менее, в настоящий момент он остается неизвестным издателю.

3 ответа

Решение

Я хочу ответить на этот вопрос сам, так как думаю, что здесь есть несколько довольно серьезных недоразумений. Вы можете сделать свой собственный сертификат и добавить его в свой собственный магазин, и тогда UAC будет сине-зеленым, и издатель будет показан. 100% доверие. Конечно, ключ в том, что сертификат CA, который вы сделали, должен быть в магазине. Это та проблема, которая вызывает проблемы при развертывании, но я надеюсь, что если я возьму свой сертификат с другими компьютерами, я смогу добавить его в хранилище, и тогда я буду отображаться как издатель.

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

signtool verify /v /pa mysigned.exe

Это говорит мне, что все было не правильно и что нужно исправить.

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

Это будет работать только в том случае, если вы подпишете пакет установки с помощью сертификата для подписи кода из доверенного центра сертификации. Вы не можете использовать свой собственный CA для создания сертификата, потому что ваш CA не известен как надежный в системах ваших пользователей. Если бы каждый мог просто создать свой собственный CA, никто бы никогда не поверил в подписанный код. Вы можете рассматривать это только как способ получения дохода, но сертификат на самом деле не такой дорогой (<200 долларов США в год). Так как он может использоваться для подписи столько кода, сколько вы хотите, это не должно быть проблемой для компаний с хорошей репутацией.

Дальнейшее чтение: http://www.codeproject.com/Articles/325833/Basics-of-Signing-and-Verifying-code

У меня тоже такое было, если на компьютере не работает время. Вы можете узнать, так ли это, щелкнув правой кнопкой мыши, чтобы просмотреть свойства установщика и просмотрев сертификат. Если в нем указано, что отметка времени может быть недействительной, проверьте время на компьютере.

Другие вопросы по тегам