我们如何签名Firefox扩展?

时间:2020-03-06 14:41:21  来源:igfitidea点击:

我为Firefox开发了几个扩展程序,但很烦恼,很难对扩展程序进行签名。如果未对扩展名进行签名,则在安装扩展名时会显示"作者未验证",对我来说,这似乎是错误的。

我有一个简单的生成脚本,可以从源代码生成我的.xpi文件,并且我有PKZip的许可副本(根据许多教程的知识,构建Firefox要求的签名xpi文件是必需的),但是我没有找到一种获得有效的免费/廉价证书的方法,或者一组完成该操作的指令。

由于我的扩展程序是免费的,因此我不想花400美元购买商业证书,但是我不介意花费50美元左右来完成它。我同时拥有Linux和Windows计算机,尽管我的构建脚本当前使用Windows,并且使用起来最方便。

我们如何解决这个问题?构建扩展后,我该怎么做才能自动并安全地对其进行签名?

编辑:我很感谢Google的命中,但是它们提供的步骤在如何真正获得有效证书方面还不够完善。我得到的感觉让我想起了这个经典:

替代文字http://www.sciencecartoonsplus.com/images/miracle3.gif

解决方案

我在Google上发现的是:http://www.mercille.org/snippets/xpiSigning.php,其中指出:

If you don't want a commercial
  certificate or can't afford one,
  Ascertia can provide you with a free
  certificate, but turning it into a
  code signing certificate requires some
  extra work, which I have detailed on
  another page.

我不能说我已经尝试过了。
在http://developer.mozilla.org/en/Signing_a_XPI上显示:

The cheapest universally supported
  (Mozilla, Java, Microsoft) certificate
  seems to be the Comodo Instant-SSL
  offering. You can get a free
  certificate for open-source developers
  from Unizeto Certum, but their root
  certificate is only present in Mozilla
  Firefox and Opera (not Java or
  Microsoft).

是的,不幸的是XPI签名是无可厚非的。我建议搜索/发布到mozilla新闻组(dev-extensions,项目所有者@ mozdev,irc.mozilla.org),并尝试与使其工作的人员取得联系。

我已经使用了comodo证书来签名XPI。当时是最便宜的选择。

我在XPI格式上写了几篇文章,并介绍了如何使用Java命令行工具进行签名的方法。

我的工具XPISigner大大简化了该过程,并且可以集成到构建系统中。

我删除了该工具,因为它不再适用于FF4或者更高版本。如果有人想修复,可以在http://code.google.com/p/xpisigner/上找到源。

Tucows每年以75美元的价格出售Comodo代码签名证书,这笔钱比我所知道的便宜(https://author.tucows.com/"代码签名证书"部分)。那对我来说仍然是太多钱,所以我没有尝试它如何工作。据我所知,我们需要成为注册组织才能购买Comodo证书,这并不是我可以尝试的。

对于Ascertia,获得证书很容易(http://www.ascertia.com/onlineCA/Issuer/CerIssue.aspx),但是这样的证书与自发证书一样毫无价值,因为我们需要导入其根证书,然后才能看到效果。

避免使用GoDaddy编码签名证书,因为默认情况下Firefox中没有必要的中间CA证书。
C = US,ST = Arizona,L = Scottsdale,O = GoDaddy.com \,Inc.,OU = http://certificates.godaddy.com/repository,CN=Go Daddy安全认证中心,SERIALNUMBER = 07969287'

如果我们使用它进行签名,则用户将会遇到签名错误。

例如

SIgning could not be verified. -260