2008-09-24 110 views
16

我已经开发了一些Firefox的扩展,并且很恼火,很难获得扩展签名。当一个扩展没有签名时,它会在安装时显示“Author not verified”,对我来说看起来不对。你如何签署你的Firefox扩展?

我有一个简单的构建脚本,可以从源代码构建我的.xpi文件,并且我有一个PKZip的授权副本(根据许多教程需要构建Firefox需要的签名xpi文件),但是我还没有找到一种方法来获得实际工作的免费/廉价证书或一组指令来实现这一诀窍。

由于我的扩展是免费的,我不想花400美元购买商业证书,但我不介意花费50美元左右来完成它。我有Linux和Windows两种机器,尽管我的构建脚本目前使用Windows,而且使用起来最方便。

你是怎么解决这个问题的?在构建扩展时,我需要做些什么来自动并安全地签署扩展?

编辑:我很欣赏Google的点击率,但是他们提供的步骤还不够完善,无法真正获得可用的证书。给我的感觉让我想起了这个经典的:

alt text http://www.sciencecartoonsplus.com/images/miracle3.gif

回答

3

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

我已经写了 XPI Forma t的几篇文章,并使用java命令行工具编写了 signing的howto。

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

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

3

我找到了与谷歌是这样的:http://www.mercille.org/snippets/xpiSigning.php其中规定:

如果你不想商业 证书或能”买得起, Ascertia可以为您提供一个免费的 证书,但将其转换为 代码签名证书需要一些 额外的工作,我已经在上详细说明10 another page

我不能说我试过了。 而就http://developer.mozilla.org/en/Signing_a_XPI它说:

最便宜的普遍支持 (Mozilla的,Java和微软)证书 似乎是科摩即时SSL 产品。您可以从Unizeto Certum获得免费的 证书,用于开放源代码开发者 ,但其根目录 证书仅存在于Mozilla Firefox和Opera(不是Java或 Microsoft)中。

+0

不幸的是,目前还不清楚* Ascertia获得哪个*证书,而“另一个页面”目前大多是空白的。我想要一些更具体的请:) :) – 2008-09-24 21:10:41

+0

是的,我也看了第二页 - 这就是为什么我买了PKZip。我如何从Unizeto获得正确的证书?什么是获得它的网址? – 2008-09-24 21:15:59

+0

是的,我也试图跟进这一点,我也找不到第二步。 – dlamblin 2008-09-30 00:08:53

1

是的,不幸的是,XPI签名很不平凡。我建议搜索/发布到mozilla新闻组(开发扩展,项目所有者@ mozdev,irc.mozilla.org),并试图联系上班人员。

1

Tucows以每年75美元的价格销售Comodo代码签名证书,这与我所知道的一样便宜(https://author.tucows.com/,“代码签名证书”部分)。这对我来说还是太多钱,所以我没有尝试它的工作原理。不是我可以尝试,从我能告诉你需要成为注册组织购买Comodo证书。

对于Ascertia而言,获取证书非常简单(http://www.ascertia.com/onlineCA/Issuer/CerIssue.aspx) - 但是这样的证书与自签发的证书一样没有价值,因为您需要在查看效果之前导入其根证书。

4

避免GoDaddy代码签名证书,因为默认情况下,必需的中间CA证书不在Firefox中。 C = US,ST =亚利桑那,L =斯科茨代尔,O = GoDaddy.com \公司,OU = http://certificates.godaddy.com/repository,CN=Go爸爸安全认证机构,SERIALNUMBER = 07969287'

如果你用它签上你的用户将获得签约错误用它。

例如

SIgning could not be verified. -260

1

如果您有开源项目,您可以从Unizeto获得免费代码签名证书。

获取证书本身的步骤详细描述here

一旦你的证书,请执行下列操作:

  • 从你的浏览器的私有密钥(如下载它的.p12从你的钥匙链 - 不要设置密码),并将其转换为PEM格式通过openssl pkcs12 -in key.p12 -nodes -out private.key -nocerts
  • 打开从Unicert下载您的.pem文件,添加其下你的私钥和Public Key of Certum Level III CAhere私钥之下,所以它看起来是这样的:

    -----BEGIN CERTIFICATE----- [your certificate from Certum] -----END CERTIFICATE----- -----BEGIN RSA PRIVATE KEY----- [the private key you just converted from the .p12 file from your keychain] -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- [the Certum Level III CA public key you just downloaded] -----END CERTIFICATE-----

  • 保存此文件作为cert_with_key_and_ca.pem
  • pip install https://github.com/nmaier/xpisign.py/zipball/master
  • 运行xpisign -k cert_with_key_and_ca.pem unsigned.xpi signed.xpi
  • 将&降signed.xpi到Firefox安装xpisign.py,你应该看到之前有一个(作者未验证)作者姓名消息在扩展名称旁边。