1,下载最新的网络安全服务(NSS)包从Mozilla的FTP站点:

ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/

对于Windows,你会希望在的NSS_3_9_RTM/WINNT5.0_OPT.OBJ /文件夹的NSS-3.9.zip包 。

(2)解压缩到本地文件夹的归档文件的内容。在我的情况下,C:\ APPS \ NSS-3.9 \

3。从Mozilla的FTP站点下载最新版本的Netscape便携式运行时

http://ftp.mozilla.org/pub/mozilla.org/nspr/releases/

对于Windows,在v4.6/WINNT5.0_OPT.OBJ /文件夹,你会希望NSPR-4.6.zip包。

(4)提取的存档文件到本地文件夹的内容。在我的情况下,其C:\ APPS \ NSPR-4.6 \

5,加入NSS工具斌/ lib /目录下,并在NSPR的lib /
目录到系统路径。您可以设置始终通过
控制面板- >系统属性- >高级- >环境
变量- >系统变量或做它每次运行
命令行(最好使用批处理文件)的工具。

Windows包含它自己版本的这些文件(例如
certutil.exe)在系统目录(\ WINDOWS \ SYSTEM32 \),以便确保
新的路径在PATH搜索列表中的第一个

C:\> SET PATH = C:\ APPS \ NSS-3.9 \ BIN \ C:\ APPS \ NSS-3.9 \ LIB \,C:\ APPS \ NSPR-4.6 \ LIB \;%PATH%

6,审查NSS工具文档

7。 初始化凭证资料库。

确定哪个文件夹创建证书数据库。使用这个命令来创建它(请注意尾随点)。

代码:
C:\项目\代码签名\> CERTUTIL-N-D。


会导致数据库被创建在当前目录

系统将提示您的NSS证书数据库密码 - 不要忘记它!

代码:
C:\ \代码签名\> CERTUTIL-N-D
输入密码,该密码将用于加密密钥。
密码应至少为8个 ​​字符长,
并应至少包含一个非字母字符的项目。

输入新密码:
重新输入密码:

创建一个测试证书,新证书的使用-p选项来设置一个密码

代码:
C:\项目\代码签名\>的signtool-G myTestCert。-P“密码”,
使用证书目录。

警告:执行此操作的浏览器运行时,可能会导致
您的安全数据库中的腐败。如果当前正在运行的浏览器,
你应该退出浏览器,然后再继续此操作。输入
“Y”继续,或其他任何中止:Y

输入的证书信息。所有的字段都是可选的。可接受的
字符是数字,字母,空格,单引号。
证书的通用名称:测试 组织(XPI)
:TJworld
组织单位:软件
州或省:诺丁汉
国家(必须是完全2个字符):GB
用户名:TJ
电子邮件地址:证书@兰。 tjworld.net
生成公钥/私钥对
证书请求生成的
证书已签署了
证书“,myTestCert”添加到数据库
导出的证书到x509.raw和x509.cacert的的。

x509.cacert将用于签上你的XPI包。它存在于文件系统和数据库中的证书:

代码:
C:\项目\代码签名\> DIR X509 *

14/12/2005
14/12/2005 15:13 15:13 1,031 x509.cacert 798 x509.raw

C:\项目\代码签名\> CERTUTIL-D。-L
myTestCert U,U,铜

8,准备好您的XPI文件签署

刚刚签署创建一个新的文件夹,复制现有的XPI
解压缩(保持路径),删除XPI和返回的
证书数据库文件夹。

*假设你有一个zip实用程序可以在您的系统路径。这个例子是使用Cygwin的垃圾桶/ zip.exe的工具。
内部管理的子目录结构正常。7-Zip的工具不创建Mozilla的的XPI签署档案时,您可以使用一个图形化的ZIP工具,因为它排序目录条目按字母顺序排列,Mozilla的要求的第一项META-INF/zigbert.rsa

代码:
C:\ \代码签名的项目\> MD签署

C:\ \代码签名的项目\>复制到C:\项目\ FSB \,FSB         已复制1个文件(S) 。XPI签署

C:\ \代码签名的项目\> CD签署

C:\项目\代码签名\>解压缩FSB。XPI
档案:签署FSB。XPI
   创建:镀铬/
  充气:chrome.manifest的
  充气:铬/ fsb.jar
  充气的:install.rdf的

C:\ \代码签名的项目\> DEL FSB签署。XPI

C:\ \代码签名的项目\签署“>”CD。

9。注册您的XPI

代码:
C:\项目\代码签名\> signtool-D。-K myTestCert-P“密码”符号/
使用证书目录:
/ / META-INF/MANIFEST.MF文件。发电机签署..
- >铬/ fsb.jar
- > chrome.manifest的
- > install.rdf的
生成zigbert.sf
签署文件。树“/”签署成功

重新包装你的XPI 10。

切换到符号/文件夹,创建一个新的zip 文件中列出的第一个META-INF/zigbert.rsa,再加入剩余的文件。

代码:
C:\项目\证书\> CD签署

C:\项目\代码签名\ \>邮编FSB。XPI META-INF/zigbert.rsa
  新增:META-INF/zigbert.rsa(泄了气的35%签署)

C:\ \代码签名的项目\签订> ZIP-R-D的前端总线。XPI -X META-INF/zigbert.rsa
  新增:META-INF/MANIFEST.MF(泄了气的37%),
  补充说:META-INF/zigbert.sf (瘪了40%)
  加入:铬/ fsb.jar的(放气74%)
  补充说:chrome.manifest的(泄了气的69%)
  补充说:install.rdf的(泄了气的62%)


11。暂时安装到您的Mozilla浏览器的测试证书颁发机构

重命名的x509.cacert的前面生成的文件X509。证书

它导入到Mozilla Firefox浏览器作为一个软件开发者的证书颁发机构。来自Mozilla的Firefox浏览器删除证书,一旦你已经完成测试

火狐 1.5:从“工具”菜单中选择“选项” - >“高级” - >安全性- >查看证书- >机构

火狐 1.0:从“工具”菜单中选择“选项” - >“高级” - >“证书” - >管理证书- >机构

按“ 导入 “按钮。

导航到文件夹包含x509.cert,选择了它。

在“ 下载证书 “对话框中,选中“信任此CA识别软件开发商。按浏览按钮,如果你想更加紧密地检查证书。

“确定”按钮,你会看到你的新证书的主管部门清单。

12。尝试安装签署延长

无论是拖放或浏览并下载签名XPI。Mozilla的Firefox的 软件安装对话框出现时的证书的组织的名称将出现在Firefox中显示无符号

13。获得一个有效的软件开发人员的代码签名证书

现在你知道它的所有作品,你需要添加一个真正的软件开发人员的
证书的NSS证书数据库,并用它来 ​​签署的XPI。有几个发行人的软件开发者证书,三个关键的差异:可用性,成本和身份验证。


许多发行人不能提供一个软件开发者证书,
个人(多么可笑),所以你可能需要搜索很难找到一个
,谁也有一个在Mozilla Firefox中安装CA根证书颁发机构。

如果没有证书的发行商Mozilla的Firefox的
CA根证书,将无法确认您的证书的有效性,用户要
安装的扩展。

理想情况下,你想有一个根CA安装在所有
主要的平台(微软Windows的Sun Java 的Firefox /浏览器,Mozilla的/ Netscape的歌剧)的证书,所以你只使用一个证书签署的所有软件,无论在哪个平台是为。

最便宜的普遍支持(如Mozilla,如Java,Microsoft)
证书似乎是魔岛即时SSL提供。你可以得到一个免费的的证书的开源开发 Unizeto Certum,但他们的根证书是目前唯一在Mozilla Firefox和Opera浏览器(而不是使用Java或Microsoft)。

下面是一些目前发行人:

科摩即时签署SSL代码




您将需要一个代码签名证书
申请和满足发行人的身份验证程序。
然后,他们将发出一个签名的证书。当您收到签署的
证书,它必须被导入到证书数据库中。

你一定没有意识到这一点,你的浏览器会在后台生成一个新的私有密钥和代码签名请求(CSR) 。CSR将被上传到发行人。后来,你必须使用相同的浏览器时,密钥和证书对安装新的证书,因为必须要装配在一起。

提示:当申请证书,确保组织(O)包含您的姓名,而不是发行人的默认文本,因为这是显示给用户的是什么。

在本指南中,我申请了一个免费的从Unizeto Certum证书。
填写申请过程中,我进入我的个人资料
在网上申请后,我收到一封自动发送的电子邮件,要求
我的ID照片的ID或类似的形式的证明文件。

我有我的护照和驾驶执照的高分辨率扫描的图像,
对于这些情况,所以我把它们放在我的网络服务器暂时在一个
隐蔽的位置,并通过电子邮件发送Unizeto Certum的细节和
位置的文件。

在几个小时内,我收到一封确认电子邮件从一个人
接受的ID图像,并给了我一个超链接的资格证书
下载区。

安装证书到Mozilla 的Firefox(这与前面创建的私钥),并复制/粘贴到一个新的文本文件名 ​​为Ç所显示的证书:\项目\代码签名\ Certum代码Signing.cer

14。安装真正的证书

有两个步骤需要安装新的NSS证书数据库的代码签名证书。

    安装发行人的证书颁发机构根
    安装密钥和证书

根CA建立信任您的证书。许多发行人
有多个不同程度的信任的根CA。找出哪
一个是您的证书和下载。

在Mozilla Firefox中,您可以查看您的证书的详细信息,并得到这个信息的发布由共同的名字(Unizeto Certum的免费证书CA是Certum的I级)。

下载根CA和任何中间证书,用于签名
的证书由发行人自己的网站上
的某个地方有一个链接到他们的根CA和公共证书。(Certum公共密钥“页)。我下载了Certum根CACertum的电平我的 数字ID为WWW和SSL / TLS服务器,复制文本,并将它们保存到文件C:\项目\代码签名\ Certum根CA.cerC:\项目\代码签名\ Certum级别I.cer

打开一个命令提示符(NSS工具的路径设置为在
第5步)中的代码签名的文件夹,发行人安装CA证书,
并检查他们已正确添加。

代码:
C:\项目\代码签名> CERTUTIL-A-N“Certum根CA”-T“TC,TC,TC”-D。-我“Certum根CA.cer”

C:\项目\代码签名> CERTUTIL-A-N“Certum级别I”-T“C,C,C-D。-我“Certum水平I.cer”

C:\ \代码签名> CERTUTIL-L-D。
myTestCert U,U,铜
Certum根CA CT,C,C
Certum I级CT,C,C 项目


新颁发的证书在Mozilla Firefox中
的密钥库的名称是不是最简单的别名在世界记住了,所以我
添加了一个额外的步骤,让您重新命名它(它不只是一个
简单的重命名操作,不幸的是) 。

要查找的名称,在Mozilla Firefox浏览器浏览到证书管理器(在第11步),选择“您的证书”,选择新的证书,按浏览,选择详细信息证书字段树视图中的第一项。

我的Unizeto Certum证书被命名为“TJ的Unizeto SP。z oo与ID“但我想它被称为”代码的签名(Certum)“。

关键是要安装的证书(无键),
在这一点上给你选择的昵称。当密钥/证书对
进口来自Mozilla的Firefox浏览器之后,私有密钥将被
添加,但证书的名称将保持不变。

代码:
C:\项目\代码签名> CERTUTIL-A-N“守则的签名(Certum)的”-t“U,U,U”-D。-我“Certum代码Signing.cer”

C:\项目\> CERTUTIL-L-D。
myTestCert U,U,铜
Certum根CA CT,C,C
Certum I级CT,C,C
代码签名(Certum),代码签名,

C:\项目\代码签名> signtool-L-D
使用证书目录。

对象签名证书
-------------
myTestCert
    发行:myTestCert(XPI测试)
    到期时间:星期二三月14,2006
代码签名(Certum)
    已发行:Certum级我(Certum I)
    到期:周二2006年3月14日
-------------
包括CA的列表,请使用“signtool-L”的

现在,你必须从Mozilla Firefox的证书数据库和到NSS证书数据库中导出新的密钥/证书对。

最难的部分是定位Mozilla的主要数据库。它由两个文件命名key3.db的cert8.db
他们通常居住在Mozilla Firefox的 用户配置文件夹。我发现我在Ç:\的Documents and Settings \ TJ \应用数据\ Mozilla的\ 火狐 \概况\ xxxxxxxx.default \ xxxxxxxx是一个随机字符串。

此过程假定您在步骤13中,在Mozilla Firefox中安装了新的证书。

下面是需要将它导出到一个文件中,导入的
代码签名数据库,并验证的签约属性(ü,ü,ü)的命令。
确保您使用您的证书的昵称代替我的,和
所在的目录Mozilla的Firefox的密钥数据库文件是:

代码:
C:\ \代码签名的项目
pk12util-O的“Certum代码Signing.pkcs12”N“:TJ的Unizeto SP。z oo与
ID“-D”C:\文件和设置\ TJ \应用
数据\ Mozilla的\ 火狐 \概况\ xxxxxxxx.default“
请输入密码PKCS12文件:
重新输入密码:
pk12util:PKCS12出口成功

C:\项目\代码签名> pk12util我“Certum代码Signing.pkcs12”-D
“NSS证书DB”输入密码或PIN:
输入密码PKCS12文件:
pk12util:PKCS12导入成功

C:\ \代码签名> CERTUTIL-L-D。
myTestCert U,U,铜
Certum根CA CT,C,C
Certum等级I C,C,C
代码签名(Certum)U,U,U的项目


你应该注意到,现有的证书已被更新。

15。自己的真实签名证书

这是重复的步骤8,9和10使用真正的证书的细节。下面是输出一个test目录:

代码:
C:\项目\代码签名>:signtool-D。-K“守则的签名(Certum)”-P *******测试
使用的证书目录。
生成检验/ META-INF / manifest.mf文件..
- > test.txt的
生成zigbert.sf文件。
树成功地签署了“测试”

警告:目前NSS signtool
包括在签名证书(zigbert.rsa“)的证书链。
这意味着火狐会拒绝安装签名的代码通过一个
中间证书颁发机构如Certum I级,除非用户安装该证书到Firefox的第一个。
一个错误报告
已经提出与NSS的团队找到一种方法,允许
用于代码签名证书链。请发表您的支持意见
的bug有NSS的团队知道这是什么,很多
人都希望有。

16。将签署到您的构建过程中

到您现有的构建过程中,您可能希望将这些步骤。我有一个build.bat中的文件,它可以自动创建的JAR,XPI文件。这个例子是使用的Cygwin斌/ zip.exe工具的。

build.bat中被放置在扩展的根文件夹中。例如:

/dev/fsb/build.bat
/dev/fsb/install.rdf
/dev/fsb/chrome.manifest
/dev/fsb/chrome/
/dev/fsb/chrome/content/
/dev/fsb/chrome/locale/
/dev/fsb/chrome/skin/

在这里,它是代码签名的步骤包括:

代码:
@ ECHO OFF
集x =%CD%
回音建筑%X%。XPI
回声开始在%DATE%%TIME%%X%\ build.log
MD构建\镀

拉链-R CD “0”%X%。罐子“* >>%%\ build.log
将“%X%。罐子”.. \编译\铬>>%X%\ build.log
CD。
复制install.rdf的构建>>%X%\构建日志
复制chrome.manifest的构建>>%X%\ build.log的
signtool.exe-D C:\项目\代码签名-K“守则的签名(Certum)”-P“密码”建立/ >>%X%\构建日志
CD构建
拉链“%X%。XPI “META-INF/zigbert.rsa >>%X%\ build.log
拉链-R-D“%X%。XPI “*-X META-INF/zigbert.rsa %X%\ build.log
物权复制“%X%。XPI “.. \ .. \ .. \ HTTP \ FSB。XPI >>%%\ build.log
将“%X%。XPI “。 \ >>%×%\ build.log 32
CD。,
第三届编译/ S / Q
附和完成。


确保您的NSS证书数据库的密码,更换密码