Есть ли способ подписать двоичный файл с помощью просроченного сертификата?
Я использую signtool, чтобы подписать мои exe и dll файлы. В целях тестирования я хочу найти способ сделать это с помощью просроченного сертификата. Является ли это возможным? Если это невозможно с Signtool, я также могу использовать другой инструмент. Btw. Я не хочу менять системную дату, потому что позже я хочу попробовать добавить метку времени.
Эта команда вместе с параметрами, используемыми с signTool для подписи моего файла:
signTool sign /f expiredCert.pfx /p "pass" /v test.dll
В результате я получаю:
SignTool Error: No certificates were found that met all the given criteria.
1 ответ
Я отвечаю на свой вопрос, потому что оказывается, что самый простой способ сделать это - манипулировать вашим системным временем. Это было обременительно для меня, потому что оно заблокировано на моей машине разработчика, поэтому мне пришлось делать это на машине с виртуальной коробкой с отключенной синхронизацией времени. После изменения системного времени на дату в течение срока действия сертификата я смог подписать файлы. Позже я даже смог добавить метку времени, используя внешний сервис. Конечно, Windows сразу же будет жаловаться на этот факт, если вы решите проверить вкладку "Цифровые подписи" в свойствах файла, но это то, чего я хотел добиться для выполнения своих тестов.
Как вы отметили, можно подписать, но чтобы он был ДЕЙСТВИТЕЛЬНО подписан (Authenticode), как сказано здесь https://support.globalsign.com/code-signing/ev-code-signing-windows-7-and-8
Отметка времени вашего кода чрезвычайно важна и настоятельно рекомендуется для каждого фрагмента кода, который вы подписываете. Эта метка времени позволит подписанному вами файлу оставаться действительным еще долго после истечения срока действия самого сертификата.
вам нужно поставить отметку времени. Я сомневаюсь, что вам разрешено, чтобы временная метка истекла в момент сертификата временной метки (она никогда не будет действительной, ИМХО).