火狐浏览器插件(XPI 文件)签名指南

Symantec,Thawte,GlobalSign 签发的代码签名证书都可以签名火狐浏览器插件(XPI)文件。如果您还没有代码签名证书,请联系易维信(EVTrust)购买火狐代码签名证书。

第 1 步:下载有关签名工具

请先到 Mozilla FTP 网站下载最新的网络安全服务包 (Network Security Services ,简称: NSS) : ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/ ,对于 Windows 操作系统,NSS 包:nss-3.9.zip 的存放目录为: NSS_3_9_RTM/WINNT5.0_OPT.OBJ/ ,并解包到目录: c:\foxsign\nss-3.9\ ;

还需要下载最新的 Netscape Portable Runtime 包 ( 简称: NSPR) : http://ftp.mozilla.org/pub/mozilla.org/nspr/releases/ ,对于 Windows 操作系统, NSPR 包: nspr-4.6.zip 的存放目录为: v4.6/WINNT5.0_OPT.OBJ/ ,并解包到目录: c:\foxsign\ nspr-4.6\ ;

您还需要有压缩软件,推荐用 WinRAR ,并把 c:\foxsign\nss-3.9\bin\;c:\foxsign\nss-3.9\lib\; c:\foxsign\nspr-4.6\lib\;C:\Program Files\WinRAR 等目录添加系统路径上,以便 DOS 方式下能正常使用以上签名工具。

第 2 步:创建证书存储库文件

在 DOS 方式下输入以下命令,请不要漏了 -d 后面的“ . ”:

c:\foxsign> certutil -N -d .

Enter a password which will be used to encrypt your keys.

The password should be at least 8 characters long,

and should contain at least one non-alphabetic character.

Enter new password:

Re-enter password:

输入密钥管理密码后 (请记牢,以后签名时要用到),会在该目录下生成 3 个证书存储库文件: cert8.db 、 key3.db 和 secmod.db 。

第 3 步:导入PFX格式的代码签名证书到证书存储库

您已经申请了Symantec代码签名证书,并已经得到 PFX 格式的证书文件;请在 DOS 方式下输入以下命令,请不要漏了 -d 后面的“ . ”:

c:\foxsign> pk12util -i mycs.pfx -d .

Enter Password or Pin for "NSS Certificate DB":

Enter password for PKCS12 file:

pk12util: PKCS12 IMPORT SUCCESSFUL

先输入您在第 2 步设置的证书存储库管理密码,再输入您在导出 PFX 证书时设置的密码即可,会提示“ PKCS12 IMPORT SUCCESSFUL(PKCS12 格式证书导入成功 ) ” (PKCS12 格式就是 PFX 格式 ) 。

第 4步:导入根证书和中级根证书,并检查证书是否正常导入

PFX 格式证书中本身已经含有证书颁发者的根证书和中级根证书,但由于 NSS 签名工具Signtool 不支持证书链 (Mozilla 承认这是一个 Bug),您需要联系易维信(EVTrust)获取rootCA.cer,subCA.cer文件,并保存工作目录下,如: c:\foxsign\rootCA.cer 和 c:\foxsign\subCA.cer 。并在 DOS 方式下输入以下命令,请不要漏了 -d 后面的“ . ”:

c:\foxsign> certutil -A -n " Root CA " -t "TC,TC,TC" -d . -i "rootCA.cer"

c:\foxsign> certutil -A -n " Sub CA " -t "c,c,C" -d . -i "subCA.cer"

并输入以下命令检查根证书和代码签名证书是否成功导入证书存储库中:

c:\foxsign> certutil -L -d .

22689013c 2abed23ee 6c 9a 95410b4_7dc62150 -9c 81-4ee5-8d03-1b 67c 2ba1fc2 u,u,u

WoSign Code Signing Authority - The USERTRUST Network C,C,C

UTN - USERFirst-Object CT ,C,C

如果显示以上信息,就表明证书导入成功,请注意第 1 行一直到“ u,u,u ”之前的一长串字符,这是系统自动分配的您的代码签名证书的证书别名 (alias) ,后面签名时会用到。

第 5 步:数字签名火狐插件XPI文件

本签名指南使用 Mozilla 网站上的一个插件 (Adblock Plus),原插件是没有签名的 ( 参见后面附图 ) ,在 c:\foxsign 目录下新建一个 signed 目录,再把 XPI 文件解包后的文件拷到此目录下,并在 DOS 方式下输入以下命令,请不要漏了 -d 后面的“ . ”,命令中的 alias 复制上一步看到的证书别名,如: 22689013c 2abed23ee 6c 9a 95410b4_7dc62150 -9c 81-4ee5-8d03-1b 67c 2ba1fc2 ,而命令中的 password 就是证书存储库管理密码:

c:\foxsign> signtool -d . -k alias -p password signed/

using certificate directory: .

Generating signed/META-INF/manifest.mf file..

--> chrome/adblockplus.jar

--> chrome.manifest

--> components/nsAdblockPlus.js

--> components/nsAdblockPlus.xpt

--> defaults/preferences/adblockplus.js

--> install.js

--> install.rdf

Generating zigbert.sf file.

tree "signed/" signed successfully

从最后一行可以看出:已经签名成功!会在 signed/ 目录下生成一个 META-INF 子目录,此目录中有 3 个文件: zigbert.rsa 、 manifest.mf 和 zigbert.sf ,请注意:文件 zigbert.rsa 含有签名信息,签名后不得修改和删除 signed/ 目录下的所有文件,否则会提示签名验证失败而无法安装 。

第6步:重新打包为XPI文件

把 signed/ 目录下的文件使用压缩工具打包成 zip 文件,推荐使用 WinRAR ,并使用 DOS 方式打包,因为 XPI 签名要求打包文件中的第一个文件是含有签名信息的 zigbert.rsa ,否则无法正常验证签名,而一般的压缩软件是按照字母顺序排列文件的。所以,必须先做一个指定压缩顺序的列表文件 list.txt ,如本例:

META-INF\zigbert.rsa

META-INF\manifest.mf

META-INF\zigbert.sf

chrome\adblockplus.jar

chrome.manifest

install.rdf

install.js

components\nsAdblockPlus.js

components\nsAdblockPlus.xpt

defaults\preferences\adblockplus.js

再在 DOS 方式下输入: c:\foxsign> winrar a test.zip @list.txt 然后把.zip 文件改名为 .xpi 文件即可: c:\foxsign> ren test.zip test.xpi 这样,完成了XPI文件的签名,可以放到网上供用户下载安装了!

第7步:测试和演示已经签名的XPI插件

本指南的签名过程使用了 Mozilla 网站上的一个插件 (Adblock Plus),原插件是没有签名的,在火狐浏览器中点击运行时会显示“未签名”,如图1所示:

使用火狐浏览器运行 Google 为火狐浏览器定制的 搜索工条插件,会显示软件发行者名称为: Google Inc.( http://dl.google.com/firefox/google-toolbar-win.xpi ) ,如图2所示:

时间: 2024-10-12 12:58:52

火狐浏览器插件(XPI 文件)签名指南的相关文章

【代码备忘】火狐浏览器插件xpi自动从网站下载安装的代码

欢迎加入我们的QQ群,无论你是否工作,学生,只要有c / vc / c++ 编程经验,就来吧!158427611 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml&

windows下使用火狐浏览器插件AutoProxy+MyEnTunnel+SSH访问海外站点(转)

windows下使用火狐浏览器插件AutoProxy+MyEnTunnel+SSH访问海外站点 平时需要查阅一些技术资料,光走VPN太浪费流量,所以这儿教大家一种使用火狐浏览器的插件 AutoProxy+MyEnTunnel+SSH 的方法,以下教程图片居多,不做特别过多介绍: 1.首先你得有一个镜外的SSH账号,可以是自己VPS的,也可以网上找找免费的SSH代理账号 2.安装一个火狐浏览器,并安装Firefox浏览器的扩展AutoProxy https://addons.mozilla.org

谷歌浏览器和火狐浏览器插件安装方法,分别以”谷歌访问助手”和”网页截图”为例

本文内容 问题陈述 1. 谷歌浏览器安装插件步骤 1.1 基本准备 1.2 安装插件步骤图文展示 1.3 安装后测试使用效果 2. 火狐浏览器安装插件步骤 2.1 基本准备 2.2 安装插件步骤图文展示 2.3 安装后测试使用效果 问题陈述 本篇博客重在解决两个问题: 1. 为了解决谷歌浏览器不能使用谷歌搜索引擎的问题.当我们需要使用谷歌搜索引擎时,则需要安装插件--谷歌访问助手.安装好谷歌访问助手之后,如需安装其他插件,可以进入Chrome网上应用店搜索安装. 2. 为了解决火狐浏览器部分功能

火狐浏览器插件Modify Headers伪造IP地址

安装插件:先打开火狐浏览器 => 找到下载好的 modify_headers.xpi 插件文件 => 鼠标按住插件文件不放,拖拽到火狐浏览器界面 => 按提示重启浏览器 => 完成安装. 在浏览器右上角点小图标,选择打开“Open ModifyHeaders”,如下图所示. 如图依次选择 Add → 输入 X-Forwarded-For → 自定义IP地址 → 点Add按钮完成添加 最后点击左上角的“Start”开启插件就搞定啦! 文章来源:http://jingyan.baidu

火狐浏览器插件的使用

如果想要免费下载一段音乐,可以先给火狐浏览器安装插件NetVideoHunter 如果想要屏蔽视频广告,可以使用adblock plus,只是有时候屏蔽不了.(也可以使用adsafe,只是有些人说不太安全)

火狐浏览器插件经常崩溃解决办法

在使用火狐浏览器时会经常出现下图的提示 在网络上查询了一下问题原因,出现上述情况主要是由于adobe假死,假死主要是由于adobe引入保护模式(proteceted mode),即falsh沙箱功能. 关于什么是falsh沙箱,简单介绍一下沙箱是用于区分不同的数据和程序执行.沙箱对于安全性尤其重要.如果没有恰当的信任授权,两个位于不同沙箱内的内容应该没有任何交互.Flash Player的安全模型使用称为安全域的沙箱来分离内容. 解决办法: (1)找到路径C:\windows\system32\

在NPAPI开发火狐浏览器插件在NPAPI插件

1.插件是什么 插件是一种遵循一定规范的应用程序接口编写出来的程序.插件必须依附于一个宿主程序,为宿主程序提供增强功能.插件的种类有很多,这里主要讨论浏览器插件. IE下利用OLE和COM技术开发的浏览器插件称为ActiveX控件.一般以.ocx为扩展名.IE浏览器通过OLE标准与ActiveX控件之间进行交互,完成对现有功能的扩充. IE和OLE技术都是微软出的,所以如果在非IE浏览器下开发插件,就不能使用现有的COM技术标准.NPAPI技术提供了一种新的开发浏览器下插件的标准.浏览器和插件共

解决 Firefox 火狐浏览器下载 .exe 文件卡住的问题

在firefox浏览器地址栏里输入:about:config 点“我保证会小心”,显示firefox的高级配置列表 在配置页面的搜索框里输入 browser.safebrowsing.downloads.enabled 双击找到的配置项,将值改变为 false.此时配置项会粗体显示,关闭次页面即可 --

火狐浏览器打开html文件,中文乱码

当html文件为: 解决方法: 将   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 改为:: <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />      即可.