我正在尝试用我拥有的pfx文件签署Windows 8 appx包。我使用如下命令:
signtool.exe sign /fd sha256 /f "key.pfx" "app.appx"
由此,我得到:
SignTool错误:没有找到符合所有给定标准的证书。
我没有达到什么“标准”?这仅用于测试,因此这些是自签名证书。我尝试过导入密钥,然后对其进行签名,但它总是导致相同的错误。我怎么解决这个问题?
我正在尝试用我拥有的pfx文件签署Windows 8 appx包。我使用如下命令:
signtool.exe sign /fd sha256 /f "key.pfx" "app.appx"
由此,我得到:
SignTool错误:没有找到符合所有给定标准的证书。
我没有达到什么“标准”?这仅用于测试,因此这些是自签名证书。我尝试过导入密钥,然后对其进行签名,但它总是导致相同的错误。我怎么解决这个问题?
当前回答
我也有这个问题,试了很多。使用SDK和Visual Studio签名,但是到处都是“没有找到符合所有给定标准的证书”。
解决方案: 注意,如果"after private key filter": '0 left'显示选项signtool sign /debug…,原因是你的PC没有CA本身在商店。要解决这个问题,首先安装CA(在我的例子中是一个.crt文件),然后再次运行符号。它现在应该可以工作了!
Signtool只能与同一台PC拥有的请求为ánd的CA一起使用。
其他回答
以防其他人遇到这种情况:我的问题是,在使用signtool.exe应用程序之前,我需要以管理员身份运行命令提示符。然后一切都很好地工作。
在我的情况下,我有错误的证书类型,我试图关联。我选择了“服务器认证”而不是“代码签名”。 您应该能够在预期用途部分的Certificate snap中看到这一点。在那之后,它就可以正常工作了。
我有同样的“私钥过滤后,0 certs被留下”的消息,我花了太多的时间试图弄清楚这条消息的意思。
问题是我在Windows证书存储中错误地安装了证书,因此没有与代码签名证书相关联的私钥。
我应该做的是:
Using either Firefox or Internet Explorer, submit the request to the issuer. This generates a PRIVATE KEY which is stored silently by the browser (a dialog appears for a fraction of a second in Firefox). Note that other browsers may not work: your life is too short to find out if they do. Submit the request, jump through the issuer's validation hoops and loops, sacrifice a goat, pray to the gods, submit a signed statement from your great grandparents, etc. Download the certificate (.crt) and import it into the same browser. The browser now has both the private key and the certificate. Export the certificate from the browser as a Personal Information Exchange (.p12) file. You will be asked to supply a password to protect this file. Keep a backup copy of the .p12 file. Run the Certificate Manager (certmgr.msc), right click on the Personal certificate store, select All Tasks/Import... and import the .p12 file into Windows. You will be asked for the password you used to protect the file. At this point, depending upon your security requirements, you can mark the key as exportable so you can restore a copy from the Windows store. You can also mark that a password is required before use if you want to break batch scripts. Run signtool successfully, breathe a sigh of relief, and ponder how much of your life you have wasted due to bad error messages and poor or missing documentation.
我通过使用/sm标志来指定查找机器存储而不是默认的“我的(本地用户)”存储来解决这个问题。此外,使用/debug可以帮助打开signtool的调试功能。
同样的问题,原来是证书的私钥没有权限。 要修复-打开证书管理,找到您的证书,右键单击->管理私钥,然后在安全顶部确保您的用户被添加并给予权限,这为我修复了它。