Проблема
Хотя я не получаю ошибок в подробном SignTool (manual) команд в моем исполняемом файле Windows, метки времени перезаписываются, и я хочу, чтобы было несколько меток времени, возможно ли это?
- Если это возможно, то как?
- Если это невозможно, и мне нужно использовать только одну единственную временную метку, то какой сервер вы порекомендуете в долгосрочной перспективе? (Сейчас мне на ум приходит DigiCert.)
Вот что я пробовал
Функция PowerShell
function sign32exe([string]$arg)
{
& 'C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe' sign /fd sha256 /a $arg
Start-Sleep -Seconds 5
& 'C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe' timestamp /tr http://timestamp.globalsign.com/?signature=sha2 /td sha256 /v $arg
Start-Sleep -Seconds 5
& 'C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe' timestamp /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td sha256 /v $arg
Start-Sleep -Seconds 5
& 'C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe' timestamp /tr http://time.certum.pl /td sha256 /v $arg
}
Вывод PowerShell
Я получаю положительный результат от SignTool, но временные метки перезаписываются при каждом вызове (реструктурированы для лучшей читаемости):
Процесс подписания проходит хорошо:
Done Adding Additional Store
Successfully signed: .\my.exe
Затем следуют метки времени, которые индивидуально проходят без проблем:
Successfully timestamped: .\my.exe
Number of files successfully timestamped: 1
Number of errors: 0
Successfully timestamped: .\my.exe
Number of files successfully timestamped: 1
Number of errors: 0
Successfully timestamped: .\my.exe
Number of files successfully timestamped: 1
Number of errors: 0
Изображение для слов
Обоснование
У меня есть сертификат от центра Certum, который называется Standard Code Signing. Поскольку он скоро истекает, я хотел бы убедиться, что у моего исполняемого файла Windows не возникнет проблем после истечения срока действия моего сертификата подписи. Я думал, что больше временных меток было бы лучше, если один сервер станет недоступен вовремя или служба остановится, примером этого может быть, например, исчезновение полномочий Certum.
Дополнительная деталь
Мое идеальное решение должно решить указанную выше проблему:
по времени с более чем одним сервером; или
цитируя какой-либо заслуживающий доверия источник о том, что это невозможно