我有一个程序被大量并不总是超级计算机精通的人使用。我想确保不是让我的可执行文件说它来自未知作者,而是说它是由我签名的。
据我所知,这可以通过 Microsoft Authenticode 完成。我知道我需要一张证书才能做到这一点,并且正在寻找价格合理的证书。我偶然发现了Microsoft Authenticode Certificates页面。
看起来GlobalSign拥有我需要的一切。他们的证书有什么经验或有更好的公司吗?第一次做这个的人有什么好的教程吗?
我有一个程序被大量并不总是超级计算机精通的人使用。我想确保不是让我的可执行文件说它来自未知作者,而是说它是由我签名的。
据我所知,这可以通过 Microsoft Authenticode 完成。我知道我需要一张证书才能做到这一点,并且正在寻找价格合理的证书。我偶然发现了Microsoft Authenticode Certificates页面。
看起来GlobalSign拥有我需要的一切。他们的证书有什么经验或有更好的公司吗?第一次做这个的人有什么好的教程吗?
Comodo是寻找最便宜的代码签名证书的一个很好的起点,但从经销商那里可以得到最优惠的价格。
我刚刚从https://author.tucows.com/验证了价格。他们是:
附加条件是
获得价格的唯一技巧:您必须在 author.tucows.com 上免费注册。
再说一句。与价格问题无关,我想添加一个重要信息,以确保您正确理解为什么需要时间戳。如果您使用代码签名证书对文件进行签名,您可以使用来自任何时间戳服务器(如 timestamp.verisign.com)的免费时间戳(请参阅SignTool.exe的 /T 参数效用)。时间戳的实际优势如下:例如,如果您使用到 2010 年底合法的代码签名证书,则文件签名将在 2010 年底后保持正常。如果没有时间戳,您必须辞职与新证书一起归档。时间戳服务器只是确认签名日期。因为您的证书在该日期是可以的,所以您以后不会有任何问题。因此,如果您只需要一次销售软件的证书,您可以在最短的时间内获得证书:一年。您可以在SSL Certificate Authority and Digital IDs和Trusted timestamping中阅读有关时间戳的更多信息。
关于您问题的另一个子问题:获得证书后,我建议您只使用SignTool.exe实用程序。它很简单,免费且易于使用。您可以在Using SignTool to Sign a File and Assembly Signing Example中找到使用SignTool.exe的示例,或者直接开始。SignTool.exe sign -?
我用Thawte多年,现在我用Comodo(最便宜的,179.95 美元)。购买证书时,请不要忘记保存您的私钥。您需要教程Code Signing for Developers - An Authenticode How-To。
我正在为我的项目使用Certum的证书。与其他一些公司相比,价格合理,支持速度很快,实际上相当不错。
如果您将其用于开源项目,他们会免费提供证书。但是你必须要求它,他们不会在他们的网站上做广告(或者我只是没有找到它)。
证书方面,我们已经完全切换到StartSSL.com来满足我们所有的 SSL和代码签名需求,因为他们(据我所知)仍然独特的验证和证书方法允许相当低的价格(2 年约 50 美元,无限证书)和更大的灵活性:请参阅我在 Pro Webmasters 上的回答,了解有关他们的一般方法和 SSL 证书的一些优缺点。
很长一段时间以来,他们确实也提供与 Authenticode 一起使用的代码签名证书,尽管仍被标记为beta - 我们成功地将这些证书用于在多个客户站点部署的 ClickOnce 应用程序,没有任何问题。绝对似乎是测试版质量的一件事仍然是他们的时间戳服务器,它始终没有响应,但到目前为止,只需将其替换为另一个供应商就可以完美运行。虽然他们的文档 SSL 明智,但用于代码签名的文档仍然非常薄弱(几乎不存在),因此我们不得不从论坛中挖掘大部分信息或在其他地方提供通用建议。
如果证书的定价和灵活性是您主要关心的问题,我认为您不会后悔尝试他们的产品;另一方面,如果完整的文档和已建立的代码签名流程和客户群对您来说更重要,那么这个相对较小且独特的供应商将无法满足您的需求(我个人从未对相应的产品感到满意更大和/或更昂贵的供应商)。
更新:
刚刚意识到Kate Gregory 链接的相关问题也已经提供了一个推荐 StartSSL 的答案,因此您可能确实可以交叉检查该线程中提到的主题。
我的组织使用了Verisign和Comodo(我们现在使用前者,因为 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