Как подписать код по технологии Authenticode с помощью Microsoft SignTool
В данной статье мы рассмотрим процесс подписи программ для Windows по технологии Authenticode с помощью утилиты SignTool.
Чтобы использовать SignTool.exe для подписи ваших приложений, вам потребуется установить любой из следующих программных пакетов:
- Microsoft Visual Studio 2005 (или выше);
- Microsoft Windows SDK 7 (либо 8.1 или 10).
Согласно последним требованиях CA/B Forum закрытый ключ должен быть сгенерирован и храниться на аппаратном криптомодуле (USB токене).
Если вы приобретали Code Signing сертификат в магазине ЛидерТелеком, от бренда GlobalSign, то в таком случае Вы можете воспользоваться инструкцией GlobalSign для Windows 7, 8 and 10 .
Если у вас имеется несколько Code Signing сертификатов в вашем хранилище Windows, то в данной инструкции будет выбираться лучший из них, что не всегда является верным решением. Мы будем подразумевать, что в вашем хранилище имеется только один Code Signing сертификат. В противном случае вам следует обратиться к документации по SignTool.
Подпись кода с помощью SHA256-сертификата
При использовании SHA2 для подписи кода убедитесь в том, что у вас установлена последняя версия SignTool. Это позволит избежать непредвиденных ошибок.
В командной строке Windows введите следующее (для сертификатов Comodo; для других сертификатов вам потребуется уточнить URL timestamp-сервера):
signtool sign /tr http://timestamp.comodoca.com /td sha256 /fd sha256 /a "c:\path\to\file.exe"
Примечание: В документации Comodo специалисты рекомендуют использовать URL вида: http://timestamp.comodoca.com?td=sha256
Если все прошло успешно, вы увидите ответ:
Done Adding Additional Store
Successfully signed and timestamped: filename.exe
Подпись кода с помощью SHA1-сертификата
Timestamp-сервер Comodo по умолчанию использует SHA1 для простановки временных меток Authenticode в SignTool и SignCode. Сделано это с целью совместимости с Windows Vista и XP.
Для подписи кода с помощью SHA1-сертификата в командной строке Windows введите следующее (для сертификатов Comodo; для других сертификатов вам потребуется уточнить URL timestamp-сервера).
signtool sign /t http://timestamp.comodoca.com /a "c:\path\to\file.exe"
Если все прошло успешно, вы увидите ответ:
Done Adding Additional Store
Successfully signed and timestamped: filename.exe
Как проверить цифровую подпись
Для проверки цифровой подписи щелкните правой кнопкой мыши по приложению и выберите пункт Properties. Во вкладке Digital Signatures вы можете посмотреть используемый сертификат подписи кода и временную метку.