我有一个程序被很多人使用,他们并不总是精通计算机。我想确保不是让我的可执行文件说它来自一个不知名的作者,而是说它是由我签名的。
据我所知,这可以通过Microsoft Authenticode完成。我知道我需要一个证书才能做到这一点,并且正在以合理的价格寻找一个。我偶然发现了 Microsoft Authenticode Certificates 页面。
GlobalSign看起来像我需要的一切。他们的证书有什么经验,还是有更好的公司?对于第一次这样做的人,是否有任何好的教程?
答案 0 :(得分:19)
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实用程序。它简单,免费且易于使用。您可以在 SignTool.exe 和 Using SignTool to Sign a File 中找到Assembly Signing Example的使用示例,或者只是启动SignTool.exe sign -?
。
答案 1 :(得分:16)
我正在使用Certum的证书来完成我的项目。与其他公司相比,价格合理,支持速度快,实际上相当不错。
如果您将它用于开源项目,它们会免费提供证书。但是你必须要求它,他们不会在他们的网站上做广告(或者我还没有找到它)。
答案 2 :(得分:15)
我使用Thawte多年了,现在我使用Comodo(最便宜的,179.95美元)。购买证书时,请不要忘记保存私钥。你需要的 教程 Code Signing for Developers - An Authenticode How-To 。
答案 3 :(得分:10)
证书明智我们已完全切换到StartSSL.com我们所有的SSL 和代码签名需求,因为他们(据我所知)仍然是独特的验证方法和证书允许价格相对较低(2年约50美元,无限制证书)和灵活性大大提高:请参阅my answer on Pro Webmasters了解一般的方法和特别是SSL证书的优缺点。
很长一段时间以来,他们确实提供了与Authenticode一起使用的代码签名证书,虽然仍被标记为 beta - 我们正在几个客户站点成功使用这些证书,而没有任何问题。肯定似乎 beta 质量的一件事仍然是他们的time stamping server,它在任何时候都没有响应,但是到目前为止,简单地用另一个供应商替换它就完美无缺。虽然他们的文档SSL明智没问题,但代码签名的文档肯定是非常弱(仍接近不存在),因此我们不得不从论坛或其他地方的通用建议中挖掘出大部分信息。
如果证书的定价和灵活性是您的主要担忧,我认为您不会后悔尝试他们的产品;另一方面,如果完整的文档和已建立的代码签名流程和客户群对您来说更重要,那么这个相对较小且独特的供应商将无法满足您的需求(我个人从未对相应的产品感到满意。虽然更大和/或更昂贵的供应商。
<强>更新强>
刚才意识到related question linked by Kate Gregory已经有了answer recommending StartSSL,所以你可能会在这个帖子中交叉检查提到的主题。
答案 4 :(得分:5)
我的组织已使用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