如何签署Firefox扩展?

如何签署Firefox扩展?,firefox,build-automation,certificate,code-signing,Firefox,Build Automation,Certificate,Code Signing,我已经为Firefox开发了几个扩展,我很恼火,因为很难对扩展进行签名。当一个扩展没有签名时,它在安装时会说“Author not verified”,而在我看来这是错误的 我有一个简单的构建脚本,可以从源代码构建我的.xpi文件,我有一个PKZip的许可副本(根据许多教程,构建Firefox所需的签名xpi文件需要PKZip),但我还没有找到一种方法来获得一个真正有效的免费/便宜的证书,或者一组实现这一功能的指令 由于我的扩展是免费的,我不想在商业证书上花400美元,但我不介意花50美元左右来

我已经为Firefox开发了几个扩展,我很恼火,因为很难对扩展进行签名。当一个扩展没有签名时,它在安装时会说“Author not verified”,而在我看来这是错误的

我有一个简单的构建脚本,可以从源代码构建我的.xpi文件,我有一个PKZip的许可副本(根据许多教程,构建Firefox所需的签名xpi文件需要PKZip),但我还没有找到一种方法来获得一个真正有效的免费/便宜的证书,或者一组实现这一功能的指令

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

你是怎么解决的?我需要做什么才能在构建扩展时自动安全地对其进行签名

编辑:我很欣赏谷歌的点击率,但他们提供的步骤还不够完整,无法真正获得有效的证书。我得到的感觉让我想起了这个经典:


我在谷歌上发现的是:其中说明:

如果你不想拍广告 或者买不起证书, 可以为您提供免费的 证书,但将其转换为 代码签名证书需要一些 额外的工作,我已经详细说明了

我不能说我已经试过了。 上面写着:

最便宜的普遍支持 (Mozilla、Java、Microsoft)证书 似乎是科摩多即时SSL 提供。你可以得到一个免费的 开放源码开发人员证书 来自Unizeto Certum,但他们的根 证书仅在Mozilla中存在 Firefox和Opera(不是Java或 微软)


是的,不幸的是,XPI签名是非常不文明的。我建议搜索/发布到mozilla新闻组(dev extensions,project owners@mozdev,irc.mozilla.org),并尝试与使其工作的人联系。

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

我已经写了一些关于t和如何使用java命令行工具的文章

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


我已删除该工具,因为它不再适用于FF4或更高版本。如果有人想修复,可以在上找到源代码。

Tucows以每年75美元的价格出售Comodo代码签名证书,这和我所说的一样便宜(,“代码签名证书”部分)。这对我来说还是太多的钱,所以我没有尝试它的工作原理。不是说我可以尝试,从我可以告诉你需要是一个注册的组织购买一个科摩多证书


对于Ascertia来说,获取证书很容易()-但是这样的证书和自颁发的证书一样毫无价值,因为在看到效果之前,您需要导入其根证书。

避免使用GoDaddy代码签名证书,因为Firefox默认不提供必要的中间CA证书。 C=US,ST=Arizona,L=Scottsdale,O=GoDaddy.com\,Inc.,OU=Daddy安全认证机构,序列号=07969287'

如果您使用它进行签名,您的用户将收到签名错误


e、 g.无法验证签名-260

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

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

获得证书后,请执行以下操作:

  • 从浏览器获取私钥(例如,从密钥链下载为.p12-不要设置密码),并通过
    openssl pkcs12-in key.p12-nodes-out private.key-nocerts将其转换为PEM格式
  • 打开从Unicert下载的.pem文件,在其下方添加私钥,并在私钥下方添加Certum Level III CA的
    公钥,如下所示:

    ----开始证书-----
    [您的Certum证书]
    -----结束证书-----
    -----开始RSA私钥-----
    [刚从密钥链中的.p12文件转换的私钥]
    -----结束RSA私钥-----
    -----开始证书-----
    [您刚刚下载的Certum三级CA公钥]
    -----结束证书-----
    

  • 将此文件保存为带有密钥和ca.pem的证书
  • 使用
    pip安装进行安装https://github.com/nmaier/xpisign.py/zipball/master
  • 使用密钥和ca.pem unsigned.xpi signed.xpi运行
    xpisign-k cert\u
  • signed.xpi
    拖放到Firefox中,您应该会看到作者姓名,在此之前,在扩展名旁边有一条(作者未经验证)消息

不幸的是,目前尚不清楚该获得Ascertia上的哪个证书,“另一页”大部分是空白的。我想要更具体一点的:)是的,我也看了第二页——这就是我买PKZip的原因。如何从Unizeto获得正确的证书?得到它的URL是什么?是的,我也试着跟进这个,但我也不知道第二步。这些都非常有用,谢谢-很棒的信息。科摩多证书是“代码签名”证书吗?一年大约110英镑?终于有足够的代表回答你了;)就这样。我想我去年把网站搞混了,让我用美元买东西,所以便宜了一点。当时与欧元的汇率相当有利。您可能会找到更便宜的经销商,我想我在这里的另一个答案中看到了一些。仅供参考,XPISigner在Firefox 4和一些CAs方面存在一些问题。这似乎仍然是一个问题。此页上的注释导致此错误条目。 SIgning could not be verified. -260