代码签名(Microsoft Authenticode)

36

我有一个程序,被许多不太懂计算机的人使用。我希望确保我的可执行文件不再显示为未知作者,而是显示为由我签署。

据我所知,可以通过微软Authenticode实现这一点。我了解到需要证书才能做到这一点,并且正在寻找价格合理的证书。我偶然发现了这个页面 Microsoft Authenticode Certificates

看起来GlobalSign提供我所需的一切。他们的证书体验如何?或者是否有更好的公司?是否有适用于首次尝试的好教程?


9
仍在寻找一家可信赖的公司,其年费低于500美元,对于非营利软件来说这是相当高的价格。请帮我翻译此句话。 - Daisetsu
@Daisetsu:前往MSDN:获取代码签名证书,向下滚动并查看列出的供应商是否提供折扣。这样我就省了50%。 - Thomas Weller
5个回答

22

Comodo是寻找最便宜的代码签名证书的好起点,但最好从经销商处获得最优惠的价格。

我刚刚验证了https://author.tucows.com/上的价格。它们如下:

  • Comodo代码签名证书-1年:US$75
  • Comodo代码签名证书-2年:US$140
  • Comodo代码签名证书-3年:US$195

其他条件包括:

  • 成本最低的完全验证和全面支持的SSL证书
  • VerisignThawte一样可信,但价格只有它们的一小部分
  • 99%的浏览器普及率
  • 行业标准128位
  • 验证过程与Verisign一样强大,比GeoTrust更强
  • 30天退款保证
  • 30天免费更换和重新发行政策
  • 针对特定站点需求的不同保修级别
  • 免费的SecuritySpace安全审核
  • 每个InstantSSL Pro和PremiumSSL证书附带免费的TrustLogo(价值$119)

获得价格的唯一诀窍:您必须在author.tucows.com上免费注册。

还有一点需要说明。与价格无关,我想补充一些重要信息,以确保您正确理解为什么需要时间戳。如果您使用代码签名证书签署文件,则可以免费使用任何时间戳服务器(如timestamp.verisign.com,参见SignTool.exe实用程序的/T参数)。时间戳的实际优势如下:如果您使用的代码签名证书合法期限到2010年底,例如,文件签名将在2010年结束后保持完好无损。没有时间戳,您必须使用新证书重新签署文件。时间戳服务器只是确认签名日期。因为您的证书在签署日期是有效的,所以以后不会有问题。因此,如果您只需要一次销售软件的证书,可以获得最短期限为一年的证书。您可以在SSL证书颁发机构和数字ID可信时间戳中了解更多关于时间戳的信息。
关于您提出的另一个子问题:在您拥有证书之后,我建议您只使用SignTool.exe实用程序。它简单、免费且易于使用。您可以在使用SignTool签名文件程序集签名示例中找到SignTool.exe的使用示例,或者只需启动SignTool.exe sign -?

2
你能再次核实一下2013年的价格吗?否则我需要提供详细信息,包括我的地址,才能登录(这是我的一个小烦恼)。 - Dan W
@DanW:我已经确认了。今天的价格仍然相同。 - Oleg
1
我今天验证了 - 仍然是一样的($75/$140/$195)。 - Michael Herrmann

18

16

我在我的项目中使用了Certum颁发的证书。他们的价格合理,支持快速响应并且相对于其他公司来说非常好。

如果您将其用于开源项目,则他们免费提供证书。但您需要向他们申请,他们没有在网站上宣传此事(或者我只是没有找到)。


1
现在他们似乎以14欧元的价格出售,对于开源项目来说仍然是一个非常优惠的价格。 - Jérémie Bertrand
1
标准开发人员的价格为€183.00。 - fret
现在是28欧元税前,34.44欧元含税。 - Salaros
第一次费用要多得多......86欧元,因为您必须有一个硬件密钥+19.78欧元的税+30欧元的运费.. = 135.78欧元 - Skywalker13

10
证书方面,我们已经完全转向StartSSL.com用于我们所有的SSL和代码签名需求,因为他们(据我所知)独特的验证和证书方法使得价格大大降低(2年50美元,无限证书),并且灵活性更高:请参见我的Pro Webmasters上的回答了解他们的优缺点及其在一般和SSL证书方面的应用。
相当长的时间以来,他们也提供用于Authenticode的代码签名证书,尽管仍被标记为beta - 我们在几个客户站点成功地使用这些证书进行ClickOnce部署的应用程序,没有任何问题。唯一肯定还是beta质量的是他们的时间戳服务器,它并不总是响应,但是用另一个供应商的替换工作到目前为止非常顺利。虽然他们的SSL文档还可以,但是代码签名的文档却明显非常弱(几乎不存在),因此我们不得不从论坛或其他地方挖掘出大部分信息。
如果价格和证书的灵活性是您最关心的问题,我认为您不会后悔尝试他们的产品;如果另一方面对您而言彻底的文档和特别是代码签名的已建立的流程和客户群体更为重要,那么这个相对较小而独特的供应商将无法满足您的需求(我个人也从未对更大或更昂贵的供应商的相关产品感到满意)。

更新:

刚刚意识到Kate Gregory提供的相关问题链接已经推荐了使用StartSSL的答案,所以您确实可以在本主题中交叉检查所提到的话题。


他们的哪个计划适用于Microsoft Authenticode?http://www.startssl.com - nam
@nam - 我已经有一段时间没有使用它了,但我认为60.) 如何获取对象代码签名证书? 提供了你正在寻找的答案:对象代码签名证书需要至少进行2级身份验证。为了获得证书,必须事先准备好证书签名请求。然后,将签名请求提交给StartSSL™ Certificates向导。 - Steffen Opel
但是有一个大问题:以下所有的EV都不支持时间戳!这意味着,当您的证书过期(通常为两年)时,所有签名都将无效。通常,您使用时间戳,表示某个CA确认您签署它的日期,并且签名永远有效。在开始SSL下面的所有EV都禁止此操作,只能作为公司获得EV! - Josef
1
更新:所有StartSSL代码签名证书现在都支持时间戳! - Josef
1
警告:在2016年末,Google Chrome、Apple和Mozilla停止信任StartSSL / StartCom的证书。目前,证书仍然在Microsoft产品中运作。这目前只对Web证书产生影响,但值得注意。更多信息可在以下网站上获得:https://en.wikipedia.org/wiki/StartCom#Trustworthiness https://www.theregister.co.uk/2016/11/02/google_punts_wosign_startcom_from_good_guy_certificate_club/ - A.Badger
2
Startcom 现在正在关闭,因为他们无法重新获得信任。 - fjch1997

5

我的组织曾使用VerisignComodo(现在我们使用前者,因为Windows错误报告服务不接受Comodo证书-这是需要考虑的事情)。这并不太复杂-您可以使用SignTool.exe,它是.NET SDK的一部分(可能有其他工具,但是如果您拥有Visual Studio,这个工具很容易获得)。

我们有一个脚本运行以下操作(%_...%变量在脚本中设置,%1是要签名的文件)

signtool.exe sign /f %_PFXFILE% /p %_PASSWORD% /v /t http://timestamp.verisign.com/scripts/timstamp.dll /d %_DESCRIPTION% /du %_URL% %1

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