首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >代码签名问题

代码签名问题
EN

Stack Overflow用户
提问于 2016-02-26 10:54:04
回答 1查看 998关注 0票数 2

短版

我在使用Windows7/Signtool.exe对代码进行签名时遇到了一些问题,我正在寻求一些建议/澄清如何处理以下问题:当我尝试在Windows7上签名一个.exe代码文件时,使用signtool和/as选项时,签名工具将无法工作,它会抱怨我试图使用一些不受支持的选项。没有/as的签名在Windows7上工作,而与/as的签名则在Windows8.1和Windows10上工作。

  1. 任何使用/as在WIndows 7上签名的人是否已经开始使用签名工具了?
  2. 如果文件上只有一个签名,为什么有人想要使用/as呢?

长版

我被建议在我的.exe文件上签名,主要是让Windows上关于软件未知来源的警告消失,并且这么做了很多年,并没有过多地考虑它。我使用了签名工具,一个客户提供了pfx文件,而且很好。该软件销往世界各地的客户,并需要运行在Windows和更高版本。经验不足的用户可能会被这样一个警告所困扰,即软件非常危险,这就是为什么签名在几年前就已经实现了。

最近pfx文件过期了。随着一个新的和有效的证书(由Verisign/Geotrust),我得到指示,新的文件现在(支持?必需?强制/和使用?)sha256,我需要使用以下命令行来签名我的代码:

代码语言:javascript
复制
"signtool.exe" sign /n "..." /d "..." /du "..." /as /fd sha256 /tr "http://timestamp.geotrust.com/tsa" "<.exe file name>"

我将新的pfx导入到我的证书存储中,删除了旧的pfx(反正已经过期了),并尝试了一下,但是在我的开发机器(Windows7 x64)上,这给了我一条来自签名工具的错误消息:

SignTool错误:不存在必需的函数。 此错误可能意味着您正在运行以下操作系统上的SignTool: 不支持您指定的选项。

我在Windows8.1机器上试了一下,命令起作用了。我的客户在他的Windows 10机器上试过,而且它也能工作。

通过反复试验,我发现/as选项导致了问题,如果我省略了它,我也可以在WIndows 7上签名。这条消息似乎引导了正确的方向,但当我在微软(https://msdn.microsoft.com/de-de/library/8s9b9yaz%28v=vs.110%29.aspx#sign)阅读文档时,没有任何声明表明/as选项与操作系统版本有关。因此,我怀疑可能还有其他东西需要更新,但是既然我已经安装了最新的.net框架(4.5.1),并且没有列出其他的依赖项,我还能更新什么呢?将我的开发平台迁移到Windows 8或Windows 10并不是我现在也喜欢做的事情。

我想简单地忽略/as选项。它似乎处理附加在一个文件中的多个签名。如果我按照我的客户的要求,他只想要一个签名(使用新证书的sha256变体)在代码上。

当我提到这个问题时,我的客户回答说,他从购买证书的地方得到了一些技术人员给他的签名工具代码行示例。在他的测试机器(Windows 10)上,他发现它工作正常。他不在乎我是否省略了选择,如果我保证这样做不会产生不良影响。我没有看到任何签名,因为正如我解释过的,文件上只有一个签名,所以在我看来,附加另一个签名的选项是多余的。

不过,我不能百分之百肯定。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-30 23:50:08

windows 7 sdk没有/as选项。为了赢得8.1甚至更高的成绩,你必须升级。

签名工具签名/?

应该显示所有的选项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35649816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档