原文链接:http://www.itrus.com.cn/verisignchina/Service/CodeInstall/200909/28.html
====================================================================================================================================
一、 安装准备
1. 安装JDK
安装 Sun Java WTK 需要JDK支持。如果您还没有JDK的安装,则可以参考
Java SE Development Kit (JDK) 下载。下载地址:
http://java.sun.com/javase/downloads/index.jsp
2. 下载签名工具 Sun Java WTK
Sun Java Wireless Toolkit 2.5.2 for CLDC 下载地址:
http://java.sun.com/products/sjwtoolkit/zh_download-2_5_2.html
二、 开始证书请求
1. 运行 WTK
2. 点击“文件”è“工具集”,打开工具集页面。
在工具集页面中选择“签署 MIDlet (S)”
3. 新建密钥对。
如果您已经有了Java代码签名证书的密钥对(包含在密钥库备份文件 keystore.ks或 keystore.sks中),则您可以点击“导入密钥对”来导入您的证书密钥对备份。导入时需要输入您的私钥密码。WTK密钥库文件默认管理密码及私钥管理密码为 password。
如果您还没有Java代码签名证书,则您可以点击“新建密钥对”来生成一个新的密钥对。
4. 输入证书请求信息
创建密钥对并选择证书安全域
Thawte Java 代码签名证书所属安全域为“identified_third_party”即第三方认证方式。
5. 检查证书请求信息
6. 生成CSR证书请求
保存证书请求文件
三、 提交证书注册信息
检查CSR文件
下图是一个示例CSR文件
将生成的 CSR 文件发送给天威诚信,等待证书的签发
四、 安装证书并签名 MIDlet
1. 接收并保存代码签名证书
当您的证书请求被批准后,证书将附在颁发通知邮件中发送给您。直接完整复制(包括: -----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE-----),并粘贴到记事本文档中,保存为mycert.cer文件即可。Thawte Java代码签名证书的签发格式为 pem。
2. 下载CA中级证书并导出根证书
为了正确导入安装您的证书,您还需要下载Thawte Java代码签名证书中级证书文件:Thawte Code Signing CA,并从该证书导出根证书文件:Thawte Premium Server CA。
双击打开下载的中级证书intermediate.cer文件。
首先打开中级证书文件intermediate.cer
切换到“证书路径”标签,双击证书链中的“Thawte Premium Server CA”
在根证书信息栏点击“详细信息”标签,点击“复制到文件”,使用证书导出向导将根证书导出。
导出时选择证书导出格式为 Base64编码 X.509 格式,并将证书保存为root.cer
3. 导入受信证书
点击“导入证书响应”
选择导入“受信证书”,并填写证书别名。
这里我们首先导入根证书root.cer
再次导入受信证书,并选择中级证书文件intermediate.cer
证书导入成功
4. 导入代码签名证书
选择“替换证书链”方式,并对应选择您的私钥别名来导入您的代码签名证书
选择您的Thawte Java代码签名证书文件mycert.cer
证书导入成功,请检查核对证书信息。
5. 签名 MIDlet
选中您的代码签名证书密钥对,点击“签署 MIDlet 套件”按钮,开始签名您的程序。 选择您的 JAD 文件,并执行“签署 MIDlet(S)”操作
系统提示签名成功。
现在,您的.jad文件就已经包含了您的私钥签名和证书信息,您可以使用记事本打开JAD文件,会看到已经增加了类似以下字符串。
MIDlet-Certificate-1-1:后面就是您的签名证书,而 MIDlet-Certificate-1-2:后面就是Thawte 签名证书中间级证书,MIDlet-Certificate-1-3:后面就是Thawte签名证书根证书,而 MIDlet-Jar-RAS-SHA1:后面就是使用您的私钥签名JAD代码后的签名摘要。
五、 备份证书密钥库文件
Sun Java WTK工具的密钥存储库文件 keystore.ks文件位于C:\Documents and Settings\Administrator\j2mewtk\2.5.2\appdb 目录下。
Keystore.ks文件默认保护密码为 password 请保存好该文件的备份,以防止您的密钥丢失,或方便您在其他PC系统中导入密钥对来对您的程序进行签名。
附录:用命令行模式签名JAD文件
一、 命令行签名准备
1. 准备签名工具
用命令行模式对MIDlet进行签名需要使用用签名工具JadTool.jar。您可以在WTK安装目录下的bin目录中找到。您也可以通过网络下载来获取JadTool.jar的应用
首先,您需要使用keytool工具查看密钥库文件keystore.ks的内容。keytool工具包含在JDK的安装下。您可以在JKD安装目录下的bin目录中找到keytool.exe。如果您还没有配置JDK环境变量,则您需要在JDK安装目录下的bin目录中运行下文中的命令行。如果您已经成功JDK配置环境,则您可以在任意目录下运行keytool命令。
2. 准备密钥库文件keystore.ks
查看keystore.ks文件内容
Keytool -list -keystore keystore.ks -storepass password
Keystore 文件中至少要包含2输入:密钥对 thawte(PrivateKeyEntry)以及 中间级证书intermediate(trustedCertEntry)。
如果您的keystore.ks 文件中不包含中级证书 intermediate,则您可以下载中级证书文件intermediate.cer,并将其导入到 keystore.ks 文件中。
用命令行导入方式如下:
keytool -import -alias intermediate -file intermediate.cer -keystore keystore.ks -storepass password
二、 命令行模式签名Java程序
准备好keystore文件及签名工具,即可开始对文件games.jar和games.jad进行签名操作了。
1. 在jad文件中添加代码签名证书信息
Java -jar JadTool.jar -addcert -alias thawte -inputjad games.jad -outputjad games1.jad -keystore keystore.ks -storepass password
该命令将代码签名证书信息添加入jad文件,生成包含代码签名证书信息的games1.jad
2. 在jad文件中添加Thawte代码签名证书中级证书信息
Java -jar JadTool.jar -addcert -alias intermediate -inputjad games1.jad -outputjad games2.jad -keystore keystore.ks -storepass password
将Thawte代码签名证书中级证书信息添加入jad文件,生成包含代码签名证书信息的games2.jad
3. 在jad文件中添加代码签名证书私钥签名
Java -jar JadTool.jar -addjarsig -keypass password -alias thawte -jarfile games.jar -inputjad games2.jad -outputjad gamesfinal.jad -keystore keystore.ks
到这里就签名成功了。最后得到的gamesfinal.jad既是成功签名后的jad文件。
4. 检查签名结果
java -jar jadtool.jar -showcert -all -inputjad gamesfinal.jad
使用该命令将可以看到签名中所使用的证书。
5. 测试签名结果
将gamesfina.jad和games.jar复制到您的目标手机上,通过jad文件来安装您的Java程序,测试您的代码签名。