kjb*_*tel 4 msbuild code-signing batch-file signtool
我正在尝试使用SignTool.exe在项目构建期间签署我的程序集和设置文件.根据这个答案,我想使用该/sha1选项,这样我就不需要指定证书密码了.但是,当我这样做时,我收到"无效的SHA1哈希格式"错误.我已尝试从MSBuild Exec任务,Visual Studio开发人员命令提示符和批处理文件都具有相同的错误.
我正在尝试的命令(显然使用不同的键):
signtool.exe sign /a /sha1 ?1234567890abcdef1234567890abcdef12345678 /tr http://timestamp.comodoca.com /td SHA256 /v Setup.msi
Run Code Online (Sandbox Code Playgroud)
我认为我的证书安装正确且SHA1密钥正确,因为它正确地与SignFile MSBuild任务一起使用.我只是使用它,但我还需要能够签署我的安装程序文件,这些文件不是用MSBuild构建的,因此需要从批处理脚本中签名.
那可能是什么问题,我该如何解决?
我有同样的问题,发现可能有一个隐藏的UNICODE字符导致此错误.只需将文本复制到新的记事本实例并返回即可.或者,将光标放在以下位置:
/sha1 <cursor>abcdefg
Run Code Online (Sandbox Code Playgroud)
然后按BACKSPACE.如果必须按两次BACKSPACE以使光标位于"/ sha1"指令旁边,则会出现一个不可见的字符.然后输入空格就完成了.
愚蠢的错误,我不敢相信花了这么长时间才意识到。我在指纹字符串之前有一个额外的空格字符,这是错误的原因。
即使修复了这个问题之后我又收到了另一个错误:
未找到符合所有给定标准的证书。
再次运行该命令,并/debug使用列出它尝试使用的所有证书的选项
经过哈希过滤后,剩下 0 个证书。
我想要使用的证书的 SHA1 哈希值与我指定的完全相同,唯一的例外是哈希值全部为大写字母。因此,再次尝试使用所有大写字母的哈希值来执行该命令,然后...它成功了。
由于我没有在任何地方看到此要求的记录,因此我认为我应该在这里提供答案。
| 归档时间: |
|
| 查看次数: |
2001 次 |
| 最近记录: |