SignerTimeStampEx2()失败

时间:2014-06-13 23:00:55

标签: 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"

/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.  

MSDN documentation表示0x80093102代码表示:

CRYPT_E_ASN1_EOD - ASN1 unexpected end of data.

我已检查过服务器的Windows事件日志,但未找到任何相关消息。

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

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

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

0 个答案:

没有答案