Как уже упоминалось в других ответах, сначала необходимо приобрести сертификат, подходящий для подписи кода. Это будет стоить несколько сотен долларов, нигде около тысячи. Когда я недавно обновил сертификат моей компании с Globalsign, также было проведено расследование, чтобы проверить, что компания является законной, потому что я использовал мобильный номер для процесса регистрации, они хотели получить письмо от бухгалтера компании, чтобы убедиться, что мы являемся настоящим бизнесом ,
Чтобы подписать исполняемый файл, я использую задачу MSBuild. Вот выдержка с соответствующими частями:
<!--
Installer files that need to be signed.
-->
<ItemGroup>
<InstallerSignedFiles Include="$(BuildRoot)path\to\myinstaller.msi"/>
<InstallerSignedFiles Include="$(BuildRoot)path\to\setup.exe"/>
</ItemGroup>
<Target Name="ReleasePackaging">
<!-- Sign the files we're going to release -->
<SignTool
CertificateStoreName="My"
CertificateSubjectName="MyCompany"
Description="My application description"
TimestampServerUrl="http://timestamp.verisign.com/scripts/timstamp.dll"
TargetFiles="@(InstallerSignedFiles)"
/>
</Target>
Для этого, чтобы работать, как описано выше, вам нужно будет установить сертификат в личном хранилище сертификатов (см CertificateStoreName="My"
в приведенном выше примере). На веб-сайте Globalsign эта установка была автоматической частью процесса загрузки сертификатов. Примечание. Я обнаружил, что он помогает использовать Internet Explorer при загрузке сертификата, поскольку он интегрирован с хранилищем сертификатов Windows. Как только он находится в хранилище сертификатов на компьютере загрузки, вы можете отправить export it as a pfx file его на свою машину сборки и импортировать там. Если вы его экспортируете, я бы посоветовал вам защитить экспортированный файл паролем, если он попадет в чужие руки.
Когда вы используете задачу SignTool MSBuild, как указано выше, она считывает сертификаты из личного хранилища («Мой»), связанного с текущей учетной записью пользователя Windows. Это означает, что вы можете контролировать, кто может подписать код с вашим сертификатом, который является хорошим. Вы должны импортировать сертификат только в личный магазин разработчиков, которому вы доверяете.
Рекомендуется использовать сервер timestamp при подписании кода, так что вам не нужно повторно подписывать код при истечении срока действия сертификата.
Как отмечает он VeriSign в своих инструкциях (https://knowledge.verisign.com/support/code-signing-support/index? page = content & id = AR190) правильная ссылка на сервер TimeStamp: http://timestamp.verisign.com/scripts/timstamp.dll «Примечание:« timstamp.dll »не содержит буквы« e »« – marius
I «Исправлено правописание в образце кода. –
Я вижу только задачу [SignFile] (http://msdn.microsoft.com/en-us/library/ms164304.aspx). О чем эта задача «SignTool», о которой вы говорите? – Will