Альтернативные сервисы меток времени для Authenticode - PullRequest
102 голосов
/ 20 мая 2010

Мы выполняем подписывание кода и отметку времени для всех наших сборок. Иногда (обычно, когда мы приближаемся к RTM (!)) Сервер отметок времени в Verisign ("http://timestamp.verisign.com/scripts/timstamp.dll") решает периодически отключаться.

Что нам делать в этом случае?

  • Должен ли сервер меток времени быть размещен Ваш корневой центр сертификации?
  • Существуют ли другие серверы временных меток, размещенные в сети, которые мы могли бы использовать? вместо Verisign, если их сервер не работает? Предложения по другим высокодоступным и бесплатным альтернативам приветствуются:)

Ответы [ 6 ]

82 голосов
/ 28 августа 2012

Я использую следующий пакетный файл, который зацикливается не более 300 раз. Существует два аргумента:% 1 - это путь к папке, содержащей пакетный файл, файл pfx и signtool.exe. % 2 - полный путь к файлу, который подписывается. Это можно вызвать в событии пост-сборки Visual Studio с помощью вызова «$ (SolutionDir) thirdparty \ signature \ sign.bat» «$ (SolutionDir) thirdparty \ signature» «$ (TargetPath)» Я изменил этот пакетный файл, чтобы использовать разные серверы меток времени в каждой итерации. В настоящее время он использует Comodo, Verisign, GlobalSign и Starfield. Надеюсь, это The Ultimate Signing Script;)

@echo off    

REM create an array of timestamp servers...
set SERVERLIST=(http://timestamp.comodoca.com/authenticode http://timestamp.verisign.com/scripts/timestamp.dll http://timestamp.globalsign.com/scripts/timestamp.dll http://tsa.starfieldtech.com)

REM sign the file...
%1\signtool.exe sign /f %1\comodo.pfx /p videodigital %2

set timestampErrors=0

for /L %%a in (1,1,300) do (

    for %%s in %SERVERLIST% do (

        REM try to timestamp the file. This operation is unreliable and may need to be repeated...
        %1\signtool.exe timestamp /t %%s %2

        REM check the return value of the timestamping operation and retry a max of ten times...
        if ERRORLEVEL 0 if not ERRORLEVEL 1 GOTO succeeded

        echo Signing failed. Probably cannot find the timestamp server at %%s
        set /a timestampErrors+=1
    )

    REM wait 2 seconds...
    choice /N /T:2 /D:Y >NUL
)

REM return an error code...
echo sign.bat exit code is 1. There were %timestampErrors% timestamping errors.
exit /b 1

:succeeded
REM return a successful code...
echo sign.bat exit code is 0. There were %timestampErrors% timestamping errors.
exit /b 0

Я также положил http://timestamp.comodoca.com на доверенные сайты (спасибо Винсу). Я думаю, что это может быть важным шагом. Я также обновил корневые сертификаты на ПК.

14 голосов
/ 13 июля 2010

Я не уверен, должен ли сервер отметок времени принадлежать корневому ЦС или нет.

Мы используем http://timestamp.comodoca.com/authenticode (и имеем сертификат аутентичного кода Comodo), но на самом деле имеем аналогичную проблему в том, что их сервер иногда выдает ошибку или время ожидания. Мы подписываемся как часть ночной (или по требованию) сборки на нашем сервере непрерывной интеграции только для выпусков сборки (не для отладочных сборок).

Я обошел это (в основном) двумя способами:

  • Если вызов signtool.exe завершается неудачно, он повторяет попытку (немедленно) еще дважды
  • Сценарий сборки, используемый для подписи каждого exe-файла за один шаг (и у нас их несколько, как часть нашего продукта), и теперь он выполняет один за другим - занимает немного больше времени, но с меньшей вероятностью завершится неудачей

Между ними сбои сборки, вызванные проблемами с метками времени, перешли с одного-двух раз в неделю практически на никогда.

РЕДАКТИРОВАТЬ: у меня есть задача MSBuild, которая делает это (а также читает пароль сертификата, хранящийся вне хранилища ) в https://gist.github.com/gregmac/4cfacea5aaf702365724

12 голосов
/ 02 апреля 2012

Хорошо работает, заменив URL-адрес метки времени verisign одним из следующих:

http://timestamp.comodoca.com/authenticode
http://www.trustcenter.de/codesigning/timestamp

7 голосов
/ 05 августа 2010

Может использоваться любой сервер меток времени: я недавно переключился с сервера меток времени своего эмитента на Verisign, так как обнаружил, что сервер GlobalSign ненадежен. Кроме того, Thawte не запускает свой собственный сервер отметок времени, но рекомендует людям использовать Verisign.

6 голосов
/ 14 марта 2015

Служба меток времени VeriSign предоставляется бесплатно. Возможно, это может быть причиной того, что его надежность менее чем адекватна; они не дают ему бюджет на содержание!

Определенно, это большая проблема. Потерянное время из-за неудачных сборок из-за сбоев с временными метками кода - растущая проблема в индустрии разработки программного обеспечения. Конечно, вы можете написать сложный скрипт для поворота, пока не найдете сервер с метками рабочего времени ... но, действительно?

Мы должны требовать лучшего. Мы платим много за эти сертификаты.

Обратите внимание, что позже я обнаружил альтернативные серверы с отметками времени, о которых мало кто слышал, которые можно использовать в периоды, когда Verisign и Comodo не работают (обычно это происходит в рабочие часы в рабочие дни).

3 голосов
/ 22 марта 2012

У меня была такая же проблема. Иногда сервер verisign был недоступен для некоторых файлов, которые я пытался подписать (но другие файлы в той же сборке были подписаны правильно).

Я обычно повторяю попытку, и она работает, но сегодня никак.

Так что после некоторого бесполезного исследования в интернете я попытался поместить http://*.verisign.com в сайты доверенной зоны, и это работает ... Наконец, я не знаю, была ли проблема с сервером, и теперь она работает, или, если я поступил правильно, я думаю, что через несколько дней. Надеюсь, что это может помочь другим, которые заблокированы.

Конфигурация сервера: Windows Server 2003 sp2, IE8, усиленная защита включена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...