本指南针对已经购买了WoSign/Thawte/VeriSign 微软代码签名证书,还需要用此代码签名证书来签名Java JAR文件而编写,如果您还没有签名工具,请到SUN公司网站免费下载:http://java.sun.com/j2se/,推荐下载JDK1.4.2或以上版本,支持Solaris SPARC/x86, Linux86 和 Windows 操作系统。请注意:WoSign微软代码签名证书仅支持J2SE 1.5.008以上版本。
第1步 把 .pvk 和 .spc 转换为 .pfx格式
您在申请微软代码签名证书时已经成功生成了私钥文件mycert.pvk,也得到了代码签名证书(公钥) mycert.spc,您需要把此两个文件转换为一个PKCS12格式的文件mycert.pfx,具体转换步骤如下:
(1) 下载微软的转换工具软件: pvkimprt.rar ,并成功安装;
(2) 请确认您电脑上已经安装了颁发代码签名证书的中级根证书,如果没有,请先点击安装:
WoSign中级根证书为: WoSign Code Signing Authority
Thawte中级根证书为: Thawte Code Signing CA
VeriSign中级根证书为: VeriSign Class 3 Code Signing 2004 CA
(3) 在 DOS 状态下,进入保存两个签名证书文件 mycert.pvk 和 mycert.spc 的目录,请键入命令:
pvkimprt mycert.spc mycert.pvk
按提示输入私钥密码后,启动证书导入过程,按几个回车就成功把证书导入到 Windows 证书存储区,在 IE 浏览器的 “工具” — “ Internet 选项” — “内容” — “证书” — “个人”中就能看到您的签名证书,再点击“导出”就可以得到包含有签名证书公钥和私钥的 .pfx 格式证书。
请注意:在导出时要选中“如果可能,将所有证书包括到证书路径中”,并建议选中“如果导出成功删除密钥”以防止被他人非法导出。如果还需要导入使用,则再导入即可,此时导入的缺省是“不允许导出私钥”,从而保证了签名证书的安全。
请注意: pvkimprt 工具不支持跨操作系统,也就是说,如果您是在 Windows 2000 操作系统上生成的私钥文件 .pvk 的,则只能在 Windows 2000 操作系统中使用 pvkimprt 工具。
第2步 把PFX格式签名证书导入Keystore
首先,请使用以下命令检查您的开发工具中的Keytool是否能读出PFX格式证书,请注意输入keytool.exe 和 mycert.pfx 两个文件的正确路径(以下命令都在JDK\BIN目录中):
keytool -list -storetype pkcs12 -keystore mycert.pfx
如下图1所示,会提示您输入私钥密码,显示您的Keytool可以读出此PFX格式证书。请注意下面的第2条红线显示的内容为您的签名证书的别名,下面签名时需要输入此别名。
(3) 数字签名Applet
使用jarsigner签名您的JAR文件:
jarsigner -storetype pkcs12 -keystore mycert.pfx myjar.jar keyentry_friendly_name
请注意:命令行的最后一个参数是 keyentry_friendly_name(证书别名,或称:证书好记的名字,如果您的证书有一个别名,则输入此别名,如果没有,则为缺省的一串字符,如下图2所示,会提示您输入私钥密码,签名成功后没有任何提示:
(4) 验证签名
使用以下命令验证已经签名的JAR文件:
jarsigner -verify -verbose -certs myjar.jar
如下图3所示,会显示签名证书所有信息,包括软件发行商的名称(CN=,图中红色画线部分)、证书颁发机构的中级根证书和顶级根证书,在最后面会显示“已验证签名”和“jar已验证”。
一旦成功签名,就可以把已经签名的JAR文件放到网上供用户下载了,用户端的Java系统会显示您的签名证书信息,如果已经签名的文件被篡改或损坏,则系统会提醒用户并拒绝安装。