Как правильно правильно ввести двузначный код с меткой времени?

У меня есть два сертификата подписи кода (один SHA-1, один SHA-256), который я хотел бы применить к тому же файлу. Я попытался добавить сертификат SHA-256, но это не удалось:

:: Signs with the SHA-1 certificate
signtool sign /sha1 8f52fa9db30525dfabb35b08bd1966693a30eccf /t http://timestamp.verisign.com/scripts/timestamp.dll my_app_here.exe
:: Signs with the SHA-2 certificate
signtool sign /sha1 8b0026ecbe5bf245993b26e164f02e1313579e47 /as /t http://timestamp.verisign.com/scripts/timestamp.dll my_app_here.exe

Ошибка с ошибкой:

Done Adding Additional Store
SignTool Error: SignedCode::Sign returned error: 0x80070057
        The parameter is incorrect.
SignTool Error: An error occurred while attempting to sign: my_app_here.exe

Если я удалю URL временной метки из второй команды, то подпись завершается успешно, но подпись SHA-2 не имеет метки времени. (Независимо от того, помещаю ли я отметку времени на первую подпись, не имеет никакого эффекта)

Цель состоит в том, чтобы разрешить кому-то проверять приложение с более сильным сертификатом, если они находятся в операционной системе, которая поддерживает это, но чтобы избежать сбоя проверки в операционных системах, которые не поддерживают более сильные сертификаты (Vista, XP).

Возможно ли подобное?

Ответ 1

Подписание аутентификации SHA-2 требует сервер отметки времени RFC 3161. URL-адрес timestamp.verisign.com не работает для этого.

URL-адрес RFC 3161 для Symantec/Verisign:

http://sha256timestamp.ws.symantec.com/sha256/timestamp

Если вы все еще используете более старый http://timestamp.geotrust.com/tsa URL-адрес, и он не работает (апрель 2017 года), вы должны обновить его до выше одного. GeoTrust, как и Verisign, теперь является частью Symantec.

Источник:

https://knowledge.verisign.com/support/code-signing-support/index?page=content&id=SO5820