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

У меня есть два сертификата подписи кода (один 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

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

Источник:

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

Другие вопросы по тегам