在我们的buildserver上使用signtool进行代码签名时,jenkins显示了以下错误消息:
Done Adding Additional Store
Error information: "Error: SignerSign() failed." (-2147023673/0x800704c7)
SignTool Error: An unexpected internal error has occurred.
字符串
我们在USB令牌上使用EV代码签名证书。所有工具实际上都是最新的。
有什么想法吗?
使用相同的构建任务并在运行jenkins的同一台机器上手动运行它(如下面提到的用户),以及相同的环境/目录,这根本不是问题。
Jenkins服务作为具有管理员权限的简单用户(而不是本地系统)在Windows 10专业版虚拟机上运行。
有关更多详细信息,请参阅Jenkins日志的摘录:
Signiere FlinkySchule.FormularEditor.exe:
Verbindung zu Token auf- bzw. abbauen
***** code signing *****
Aktueller Pfad des signtool:
c:\JW\FS\Production\Deployment\Tools\signtool\kits
Zu signierende Datei:
c:\JW\FS\Production\Application\Assemblies\FlinkySchule.FormularEditor\bin\Release\\FlinkySchule.FormularEditor.exe
The following certificate was selected:
Issued to: Dirk W.
Issued by: GlobalSign CodeSigning CA - SHA256 - G3
Expires: Fri Apr 03 15:58:51 2020
SHA1 hash: 4187Cxyxyxyxyxyxyxyxyxyxyx7978C4
Done Adding Additional Store
EXEC : error information: "Error: SignerSign() failed." (2147023673/0x800704c7) [c:\JW\FS\Production\Application\Assemblies\FlinkySchule.FormularEditor\FlinkySchule.FormularEditor.csproj]
EXEC : SignTool error : An unexpected internal error has occurred. [c:\JW\FS\Production\Application\Assemblies\FlinkySchule.FormularEditor\FlinkySchule.FormularEditor.csproj]
型
一个问题是所有路径长度:即使在2017年,你也会遇到260个字符的路径长度限制。烦人!但我们解决了这个问题,错误仍然有时会发生。
6条答案
按热度按时间ewm0tg9j1#
使用eToken与Jenkins进行EV协同设计
使用jsign找到解决方案
字符串
eToken.cfg:
型
使用java keytool获取证书别名
型
这应该输出类似于
型
也许商店中还有更多的条目。要找到正确的,请查看您的证书的指纹。jsign的alias参数所需的alias是示例中以“te-318 f4.”开头的字符串。
需要更多关于此部分的详细帮助?请查看Trustzone。
如果您有兴趣了解我们如何使用一个eToken USB设备在单独的构建机器上进行自动构建过程,请告诉我。
slmsl1lt2#
我也遇到了这个问题。我可以通过运行Signtool.exe在Jenkins之外复制错误,但是 * 当出现令牌密码提示时,单击取消。你会得到相同的错误 *。
我有一个C程序,它监视Symantec提示符并自动输入toke密码。但Jenkins显然没有在与我的密码助手程序相同的上下文中运行Signtool.exe。因此,我编辑了运行Signtool.exe的程序来运行密码助手程序。它仍然不好。然后我意识到,可能是Jenkins在节点上运行的问题。我有Jenkins节点运行服务。一旦我停止服务,并通过直接在命令行上运行java命令进行连接,它就工作了!
所以现在我知道了,如果我要在Windows节点上运行signtool,请确保通过在命令行上运行(通过计划任务)连接节点,而不是服务。这会改变Jenkins运行的上下文,从而允许SignTool和令牌提示符发挥作用。
bpzcxfmw3#
我也遇到了同样的问题,并通过安装最新的Windows 10 SDK解决了这个问题,即10.0.15063.0
deyfvvtc4#
我省略了副署:
字符串
bsxbgnwa5#
我必须指定应该使用哪个证书进行签名
字符串
编辑:对不起,我的错误代码是不同的,但谷歌把我带到这里,所以仍然可能是有帮助的。(-2146435071/0x80100001)
euoag5mw6#
请确保您的CI机器以正确的用户(您解锁令牌的用户)登录。例如,我们使用SafeNet身份验证客户端。我们在机器启动后登录令牌。后来有人重新安装了处理我们签名的Bamboo代理,但没有将服务设置为以正确的用户登录,因此对于该用户,令牌没有登录。