火狐浏览器插件(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所示:
火狐浏览器插件(XPI 文件)签名指南的更多相关文章
- FireFox 插件xpi文件签名2
上一篇https://www.cnblogs.com/nightnine/p/6140676.html 提交到官方网站上的签名,官方已经拒绝了 于是手动自己签名 官方文档:https://develo ...
- php开发工具之火狐浏览器插件
相信做开发的都有一种火狐情怀吧! 下面来介绍下一些自己在php开发工程中用到几个火狐浏览器插件. 1.[firebug]: 这个插件可以说是一个神奇,功能不用过对介绍. 2.[hostAdmin]: ...
- windows下使用火狐浏览器插件AutoProxy+MyEnTunnel+SSH访问海外站点(转)
windows下使用火狐浏览器插件AutoProxy+MyEnTunnel+SSH访问海外站点 平时需要查阅一些技术资料,光走VPN太浪费流量,所以这儿教大家一种使用火狐浏览器的插件 AutoPr ...
- 解决 Firefox 火狐浏览器下载 .exe 文件卡住的问题 以及关闭测试版cache2
解决 Firefox 火狐浏览器下载 .exe 文件卡住的问题 在firefox浏览器地址栏里输入:about:config 点“我保证会小心”,显示firefox的高级配置列表 在配置页面的搜索框里 ...
- 火狐浏览器插件Modify Headers伪造IP地址
安装插件:先打开火狐浏览器 => 找到下载好的 modify_headers.xpi 插件文件 => 鼠标按住插件文件不放,拖拽到火狐浏览器界面 => 按提示重启浏览器 => ...
- 在NPAPI开发火狐浏览器插件在NPAPI插件
1.插件是什么 插件是一种遵循一定规范的应用程序接口编写出来的程序.插件必须依附于一个宿主程序,为宿主程序提供增强功能.插件的种类有很多,这里主要讨论浏览器插件. IE下利用OLE和COM技术开发的浏 ...
- 火狐浏览器打开html文件,中文乱码
当html文件为: 解决方法: 将 <meta http-equiv="Content-Type" content="text/html; charset=UT ...
- 火狐浏览器插件--xpath利器
以前在做web自动化的时候,免不了要找定位啊什么的.一层层找下来太痛苦了,时间也浪费了一天写不了啥.特别是在最开始接触自动化的时候,我们系统坑爹的只支持IE.后来换公司了,在偶然情况下,得知了fire ...
- 火狐浏览器安装 Modify Headers 插件
一.火狐浏览器插件安装 这里以火狐浏览器的Modify Headers插件安装为例,展示火狐插件的安装: 1.打开火狐浏览器,右上角选择“附加组件” 2.搜索Modify Headers插件 3.安装 ...
随机推荐
- YTU 2715: 函数---判断某年某月某日是这一年中的第几天
2715: 函数---判断某年某月某日是这一年中的第几天 时间限制: 1 Sec 内存限制: 128 MB 提交: 380 解决: 155 题目描述 在主程序(main)中输入某年某月某日,例如2 ...
- maven 国内完整源
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...
- Linux基本命令 文件管理 上部
第1章 Linux入门相关 目录基本知识 Linux一切从根开始 倒挂的树形结构 对路径与相对路径 绝对路径: 从根开始的路径 比如:/oldboy /data 相对路径: 没有从根开始的路径 比如 ...
- Dsp和ARM的区别
有一次上课老师在将ARM的时候说到了Dsp. Dsp(Digital Signal Process),数字信号处理技术,而Dsp芯片和ARM的结构也有很多相似之处.比如有流水线.采用哈佛结构(早期的A ...
- Gym - 101982A 2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) A. Exam
题面 题意:你和朋友一起做了n道判断题,现在你知道你们两的答案,也知道你朋友对了k个,问你至少对了几个 题解:假设你和朋友n个答案都一样,那你是不是也对了k个,假设你和朋友有1个答案不一样,是不是,你 ...
- JQuery 总结
JQuery官方网站 http://jquery.com/ 1.JQuery概念 A.Jquery是一个优秀的Javascript框架.它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器,jQu ...
- 自己的myeclipse添加javaee7步骤
1 new一个javaee名字,然后add jars 就可以
- 【知识总结】回文自动机(Palindrome_Automaton)
参考资料:Palindromic Tree--回文树[处理一类回文串问题的强力工具](请注意,其中似乎有一些错误) 回文自动机似乎和回文树是同一个东西qwq? 回文自动机(PAM)是一种处理回文串的工 ...
- html基础代码演示2
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...
- 安装cloudermanager时如何正确Configuring TLS Security for Cloudera Manager
不多说,直接上干货! 参考官网 https://www.cloudera.com/documentation/enterprise/5-2-x/topics/cm_sg_config_tls_secu ...