16

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

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

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

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

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

替代文字

4

6 回答 6

4

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

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

例如

无法验证签名。-260

于 2009-01-01T01:44:56.000 回答
3

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

如果您不想要商业证书或买不起, Ascertia可以为您提供免费证书,但将其转换为代码签名证书需要一些额外的工作,我在 另一页上有详细说明。

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

最便宜的普遍支持(Mozilla、Java、Microsoft)证书似乎是 Comodo Instant-SSL 产品。您可以从 Unizeto Certum 为开源开发人员获取免费证书,但他们的根证书仅存在于 Mozilla Firefox 和 Opera(不是 Java 或 Microsoft)中。

于 2008-09-24T21:05:46.627 回答
3

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

我写了几篇关于XPI 格式的文章和一个使用 java 命令行工具进行签名的方法。

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

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

于 2008-12-10T11:42:27.273 回答
1

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

于 2008-09-28T21:58:22.337 回答
1

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

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

于 2008-12-17T14:31:53.857 回答
1

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

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

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

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

    -----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.py _pip install https://github.com/nmaier/xpisign.py/zipball/master
  • xpisign -k cert_with_key_and_ca.pem unsigned.xpi signed.xpi
  • 将其拖放到 Firefox 中,您应该会在扩展名旁边出现(作者未验证)signed.xpi消息之前看到作者姓名。
于 2014-12-30T14:58:27.307 回答