Подтвердить что ты не робот

Как я могу подписаться на цифровой подписью?

Я программирую программное обеспечение, требующее административного доступа. Когда появляется диалоговое окно UAC, оно показывает другое всплывающее окно для программного обеспечения с цифровой подписью, чем не подписанное программное обеспечение. Я считаю, что цифровое подписание моего программного обеспечения позволит пользователям доверять моему программному обеспечению. Это стоит тысячи долларов для цифровой подписи программного обеспечения, или это бесплатно? Есть ли простой способ сделать это? Я искал вокруг Google, и все, что я получаю, - это подписать PHP, XML и PDF файлы, чего я не хочу. Мне нужно подписать мое исполняемое программное обеспечение.

Просто увидел что-то о sigtool.exe? Правильно ли это? Что относительно этих сложных файлов .pfx и Authenticode, а что нет?

4b9b3361

Ответ 1

Как уже упоминалось в других ответах, вам сначала необходимо приобрести сертификат, подходящий для подписи кода. Это будет стоить несколько сотен долларов, нигде около тысячи. Когда я недавно обновил сертификат своей компании 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. Как только он находится в хранилище сертификатов на компьютере загрузки, вы можете экспортировать его как файл pfx, перенести его на свою машину сборки и импортировать его там. Если вы его экспортируете, я бы посоветовал вам защитить экспортированный файл паролем, если он попадает в чужие руки.

Когда вы используете задачу SignTool MSBuild, как указано выше, она считывает сертификаты из личного хранилища ( "Мой" ), который связан с текущей учетной записью пользователя Windows. Это означает, что вы можете контролировать, кто может подписать код с вашим сертификатом, который является хорошим. Вы должны импортировать сертификат только в личный магазин разработчиков, которому вы доверяете.

Рекомендуется использовать сервер timestamp при подписании кода, так что вам не нужно повторно подписывать код, когда срок действия сертификата истекает.

Ответ 2

Вам понадобится утилита командной строки для подписи кода из Microsoft.

И затем:

signtool.exe sign /v /f "MyCertificate.pfx" -t "http://timestamp.verisign.com/scripts/timstamp.dll" "MyApp.exe"

или альтернативно

signcode.exe -a "sha1" -spc "MySoftwarePublishingCertificate.spc" -v "MyPrivateKeyFile.pvk" -t "http://timestamp.verisign.com/scripts/timstamp.dll" "MyApp.exe"

Ответ 3

Я никого не продаю, но попробую VeriSign. Они предлагают Подписание кода, что и есть то, что вы ищете.