SignerTimeStampEx2()失败

Ron*_*aff 10 code-signing certificate signtool

我正在使用signtool来编写一些Windows安装文件和应用程序可执行文件的代码.我正在使用的命令是:

signtool sign /f "\path\to\certfile.pfx" /p "certPassword" /tr http://tsa.starfieldtech.com /td SHA256 "path\to\setup.exe"
Run Code Online (Sandbox Code Playgroud)

/tr选项使签名带有指定时间戳服务器的时间戳.所述/td指定摘要算法(散列函数).

此命令通常由我们的一个远程服务器上的自动代码签名作业执行.该作业签署了22个不同的可执行文件,其中一半是安装文件,另一半是应用程序可执行文件.通常,在签名作业的某个时刻,命令在其中一个文件上失败.它并不总是一种或其他类型的exe,它发生在两种类型上.错误是:

Done Adding Additional Store  
Error information: "SignerTimeStampEx2() failed." (-2146881278/0x80093102)  
SignTool Error: An unexpected internal error has occurred.  
Sign command failed with exit code 1.  
Run Code Online (Sandbox Code Playgroud)

MSDN文档指出0x80093102代码的意思是:

CRYPT_E_ASN1_EOD - ASN1 unexpected end of data.
Run Code Online (Sandbox Code Playgroud)

我检查了服务器的Windows事件日志,但没有找到任何相关消息.

我重新运行该作业,它有时会在不同的exe上失败,有时它会成功签署所有文件.请注意,作业不会重建exe,它每次都使用相同的源exe.我使用相同的可执行文件多次在本地运行同一个作业,从未遇到过问题.它似乎只有当我从远程服务器运行时.基于这个事实,记录的错误信息和结果代码说明的文本,听起来好像是连接到时间戳服务器时遇到问题,或者在与服务器通信时出错.

这个错误究竟是什么意思,我该如何解决这个问题?

更新:我修改了我的签名脚本,以便在该exe失败时重试单个exe的签名最多五次.在本地计算机上测试更改时,我实际遇到了同一错误的实例,表明它不仅仅是远程服务器上的问题.假设这只是联系时间戳服务器的失败,这可能是我最好的选择.但是,我仍然想知道错误的确切原因是什么.