gpt4 book ai didi

timestamp - Authenticode 的替代时间戳服务

转载 作者:行者123 更新时间:2023-12-03 04:45:26 25 4
gpt4 key购买 nike

我们为所有生产版本执行代码签名和时间戳。有时(通常是当我们即将进行 RTM (!) 时)Verisign 的时间戳服务器 (“http://timestamp.verisign.com/scripts/timstamp.dll ”) 决定间歇性离线。

遇到这种情况我们该怎么办?

  • 时间戳服务器是否必须由您的根证书颁发机构?
  • 我们可以使用其他网络托管的时间戳服务器吗如果他们的服务器宕机了,而不是 Verisign?欢迎提出其他高可用性和免费替代方案的建议:)

最佳答案

我使用以下批处理文件,最多循环 300 次。有两个参数,%1 是包含批处理文件、pfx 文件和signtool.exe 的文件夹的路径。 %2 是正在签名的文件的完整路径。您可以在 Visual Studio 后期构建事件中调用此方法,例如 call "$(SolutionDir)thirdparty\signing\sign.bat""$(SolutionDir)thirdparty\signing""$(TargetPath)"我已修改此批处理文件以在每次迭代中使用不同的时间戳服务器。目前它使用 Comodo、Verisign、GlobalSign 和 Starfield。希望这是终极签名脚本;)

@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进入受信任的站点(感谢文斯)。我认为这可能是重要的一步。我也更新了PC上的根证书。

关于timestamp - Authenticode 的替代时间戳服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2872105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com