第1步 下载签名工具
如果您还没有签名工具,请到SUN公司网站免费下载:http://java.sun.com/j2se/,推荐下载JDK1.4.2或以上版本,支持Solaris SPARC/x86, Linux86 和 Windows 操作系统。
您将使用签名工具中的 keytool, jar, jarsigner 来申请代码签名证书和数字签名您的代码。
第2步 申请签名证书
(1) 生成私钥和公钥对(Keystore)
使用以下命令生成私钥和公钥对:
c:\jdk1.5\bin\keytool -genkey -keyalg rsa -keystore <keystore_filename> -alias <alias_name>
Keytool 会提示您输入私钥密码、您的姓名(Your name,填单位网址)、您的部门名称、单位名称、所在城市、所在省份和国家缩写(中国填:CN,其他国家填其缩写),单位名称一定要与证明文件上的名称一致,部门名称(OU)可以不填。除国家缩写必须填CN外,其余都可以是英文或中文。请一定要保存好您的私钥和私钥密码。CA机构不会要求您提供私钥文件!
(2) 生成证书请求文件(CSR) Generate a CSR
请使用如下命令生成证书请求文件(CSR):
c:\jdk1.5\bin\keytool –certreq –file certreq.csr –keystore <keystore_filename> -alias <alias_name>
第3步 使用代码签名证书
(1)一旦CA机构验证了您的真实身份,将会颁发证书给您。此证书格式含有您的证书和根证书链,Keytool要求此格式证书 ,请把证书保存到您的电脑中。
请使用如下命令导入您的证书到keystore 中,这里假设您的证书名称为:cert.cer,请同时指明详细路径,一旦成功导入证书,请及时备份您的keystore文件:
(2) 把Applet代码打包成JAR文件
请使用jar 把您的Java代码打包成JAR文件,此JAR文件包含了当前目录及其子目录的所有Applet文件:
file C:\TestApplet.jar. The JAR file contains all the files under the current directory and its sub-directories.
c:\jdk1.5\bin\jar cvf C:\TestApplet.jar
运行后, Jar会显示: Jar responds:
added manifest
adding: TestApplet.class (in = 94208) (out= 20103)(deflated 78%)
adding: TestHelper.class (in = 16384) (out= 779)(deflated 95%)
(3) 数字签名Applet
使用jarsigner签名您的JAR文件,最后的参数Mycert为Keystore中签名证书的别名:
c:\jdk1.5\bin\jarsigner C:\TestApplet.jar MyCert
(a) 会提示您输入私钥密码,请使用您在第1步设置的密码;
(b) 请输入.jar文件的完整路径和文件名,MyCert 就是您在生成私钥和CSR时使用的别名<alias_name>;
(c) Jarsigner 会生成您的代码摘要(Hash),并把此摘要和您的签名证书添加到JAR文件中。
如果您已经有了从其他电脑上备份的Keystore文件(如:wotonecs.jks),则可以使用如下命令来签名JAR文件,最后的参数wotonecs为Keystore中签名证书的别名:
c:\jdk1.5\bin\jarsigner -keystore wotonecs.jks C:\TestApplet.jar wotonecs
(d) 使用以下命令验证已经签名的JAR文件 Verify the output of your signed JAR file.
c:\jdk1.5\bin\jarsigner -verify -verbose -certs c:\TestApplet.jar
一旦成功签名,就可以把已经签名的JAR文件放到网上供用户下载了,用户端的Java系统会显示您的签名证书信息,如果已经签名的文件被篡改或损坏,则系统会提醒用户并拒绝安装。