签名工具错误:指定的算法无法使用或无效。

9

我正在尝试使用Visual Studio 2012 Express为我的Windows Store应用签名appx文件,但出现以下错误:

SignTool Error: The specified algorithm cannot be used or is invalid

我正在通过STORE->创建应用程序包菜单来运行该进程,因此我无法直接访问SignTool的参数。
起初我以为是因为它使用了我们其他开发人员的自签名证书,所以我更改为使用我们真实的证书,但仍然遇到了同样的问题。
有任何想法是什么原因导致这个问题以及如何解决?
编辑:怀疑问题是我们正常证书不支持SHA-256,因此我在Visual Studio中创建了一个新的测试证书,但结果相同。
编辑2:验证了我的appx包中的哈希算法为SHA256,尝试手动运行SignTool,命令如下:
SignTool sign /a /f My_TemporaryKey.pfx /fd SHA256 /v /debug MyAppPackage.appx

出现相同的错误,控制台信息中没有有用的信息。


你遇到了同样的问题...你找到了任何解决方案或变通方法吗? - saurav
3个回答

5

我使用了旧版本的signtool.exe。

将环境变量的路径更新为旧版本路径。

仍然无法工作。

"C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64"

工作中

"C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64"

我已经解决了问题,当我切换到旧版本时就可以了。谢谢。 - Jagz W

0
在我的情况下,使用当前公司证书在旧版Windows XP开发机上成功执行几十个可执行文件签名后,我开始遇到相同的错误,这似乎是误导性的。
为了克服这个问题,我不得不更改我的通常时间戳服务器,这是SignTool的可选参数/t/tr,如 Daniel Georgiev建议. 在这种情况下,我选择了http://timestamp.comodoca.com
解决方案是,由于我通常将公司的证书导入我的Windows用户证书存储 (*)中,所以操作如下。
(*) 导入证书后,在签名过程中不再需要指定 .pfx。
Signtool.exe sign /t http://timestamp.comodoca.com /a /n "FileToBeSigned.exe" /v "MyExeFullPath" 

如果还是失败了,我建议你检查一下这个全面的替代时间戳服务器

0

当您尝试签名应用程序的计算机中未安装证书时,会出现此问题。

在计算机中安装 .pfx 文件,然后再次尝试签署应用程序。 要安装它,请右键单击证书,然后单击“安装”。然后按照提示在本地计算机上安装它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接