【问题标题】:How do you sign your Firefox extensions?你如何签署你的 Firefox 扩展?
【发布时间】:2010-09-12 21:30:00
【问题描述】:

我已经为 Firefox 开发了几个扩展程序,但我很恼火的是很难为扩展程序签名。当扩展程序未签名时,它会在安装时显示“作者未验证”,对我来说这看起来是错误的。

我有一个简单的构建脚本,可以从源代码构建我的 .xpi 文件,并且我有 PKZip 的许可副本(根据许多教程,构建 Firefox 所需的签名 xpi 文件需要它),但我没有'没有找到一种方法来获得真正有效的免费/便宜的证书或一组可以解决问题的说明。

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

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

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

【问题讨论】:

    标签: firefox build-automation certificate code-signing


    【解决方案1】:

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

    自己获取证书的步骤详细描述here

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

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

      -----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
    • 安装xpisign.pypip install https://github.com/nmaier/xpisign.py/zipball/master
    • 运行xpisign -k cert_with_key_and_ca.pem unsigned.xpi signed.xpi
    • signed.xpi 拖放到 Firefox 中,您应该会在扩展名旁边看到 (作者未验证) 消息之前看到作者姓名。

    【讨论】:

      【解决方案2】:

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

      我在XPI Format 上写了几篇文章,并使用java 命令行工具为signing 写了一个howto。

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

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

      【讨论】:

      • 这真的很有帮助,谢谢 - 很棒的信息。 Comodo 证书是“代码签名”证书,一年花费大约 110 英镑吗?
      • 终于有足够的代表来回答你了;)就是这样。我想我去年通过混淆网站让我以美元购买而便宜了一点。当时与欧元的汇率相当优惠。您可能会找到提供更便宜的经销商,我想我在这里的另一个答案中看到了一些。
      • 仅供参考,XPISigner 在 Firefox 4 和一些 CA 上存在一些问题。
      【解决方案3】:

      避免使用 GoDaddy 代码签名证书,因为必要的中间 CA 证书默认情况下不在 Firefox 中。 C=US,ST=Arizona,L=Scottsdale,O=GoDaddy.com\,Inc.,OU=http://certificates.godaddy.com/repository,CN=GoDaddy Secure Certification Authority,SERIALNUMBER=07969287'

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

      例如

      无法验证签名。 -260

      【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

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

          如果您不想要广告 证书或买不起, Ascertia可以免费为您提供 证书,但把它变成一个 代码签名证书需要一些 额外的工作,我已经详细说明了 another page.

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

          最便宜的普遍支持 (Mozilla、Java、Microsoft)证书 似乎是 Comodo Instant-SSL 提供。你可以免费获得 开源开发者证书 来自 Unizeto Certum,但他们的根源 证书仅存在于 Mozilla Firefox 和 Opera(不是 Java 或 微软)。

          【讨论】:

          • 不幸的是,目前尚不清楚要获得 Ascertia 上的 哪个 证书,并且“另一页”目前大部分是空白的。我想要一些更具体的东西:)
          • 是的,我也看过第二页 - 这就是我购买 PKZip 的原因。我究竟如何从 Unizeto 获得正确的证书?获取它的 URL 是什么?
          • 是的,我也尝试跟进,但我也无法弄清楚第 2 步。
          猜你喜欢
          • 1970-01-01
          • 2015-08-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-04-01
          • 1970-01-01
          相关资源
          最近更新 更多