创建和使用J2ME MIDlet代码签名证书需要Java环境支持。如果您还没有JRE的安装,则可以参考Java SE Runtime Environment (JRE) 下载,下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Java命令行工具包含在JRE的安装目录下。您可以在JRE安装目录下的bin目录中找到。如果您还没有配置JAVA环境变量,则您需要在JRE安装目录下的bin目录中运行下文中的命令行。如果您已经成功配置JAVA环境变量,则您可以在任意目录下运行Java命令行工具。
二、生成证书请求
1. 生成keystore文件
生成密钥库文件keystore.jks需要使用JRE的keytool工具。命令行进入JRE下的bin目录,运行keytool命令创建keystore.jks文件(示例中粗体部分为可自定义部分,请根据实际配置情况作相应调整):
cd "C:\Program Files\Java\jre6\bin”
keytool -genkey -alias JavaCodesign -keyalg RSA -keysize 2048 -keystore C:\keystore.jks -storepass password
请使用英文信息注册J2ME MIDlet代码签名证书,中文注册会导致信息显示乱码。
您的名字与姓氏是什么? //您单位/机构/企业合法的名称
您的组织单位名称是什么? //部门名称
您的组织名称是什么? //您单位/机构/企业合法的名称
在输入
2. 生成证书请求文件(CSR)
keytool -certreq -alias JavaCodesign -sigalg MD5withRSA -file C:\certreq.txt -keystore C:\keystore.jks -storepass password
备份密钥库文件keystore.jks,并稍后提交证书请求文件certreq.txt,等待证书签发。
三、提交证书注册信息
1.在线注册
在您确认订购VeriSign代码签名证书后,VeriSign会从 isporders@verisign.com 邮箱给您发送一封主题为“Please complete your Code Signing Certificate order”的证书注册邀请邮件。
进入邮件中的证书注册链接:
2.确认证书申请年限
请选择证书申请方式。选择“续订”将把您将原有的未过期证书中剩余的有效期延续到更新的证书有效期中。
启用本地CSR生成将使用您当前的IE浏览器自动创建证书私钥及证书请求。请不要选择此选项。
3.提交CSR
打开证书请求文件certreq.txt(CSR文件),复制文件所有内容,并粘贴到注册表单中。
4. 填写公司信息
5. 填写公司联系人信息
您在注册页面中填写的单位联系人必须是您公司的正式员工!
您在注册页面中填写的所有联系人的邮件地址不能是免费的邮件地址!
6.填写技术联系人信息
技术联系人邮箱将会用于接收证书的签发邮件。
7.检查并核对证书注册信息
8.同意注册条款
9.完成证书注册申请
四、安装证书并签名 MIDlet
1.导入代码签名证书CA证书
为了正确导入安装您的证书,您需要首先下载Java代码签名证书CA证书文件并将其导入到您的keystore.jks文件中。
将证书签发邮件中的从BEGIN到 END结束的服务器证书内容(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”)粘贴到记事本等文本编辑器中,并修改文件扩展名,保存为mycert.cer文件
请首先将CA证书和代码签名证书mycert.cer文件复制到命令行中指定的位置。
进入JDK安装目录下的bin目录,运行keytool命令。
keytool -list -keystore C:\keystore.jks -storepass password
查询到PrivateKeyEntry属性的私钥别名(alias)为javacodesign。记住该别名,在稍后导入代码签名证书时需要用到。
注意,导入证书时,一定要使用生成证书请求文件时备份的keystore.jks文件。keystore.jks文件丢失或生成新的keystore.jks文件,都将无法正确导入您的代码签名证书。
导入根证书
keytool -import -alias root -keystore C:\keystore.jks -trustcacerts -storepass password -file C:\root.cer
导入第一张中级CA证书
keytool -import -alias intermediate1 -keystore C:\keystore.jks -trustcacerts -storepass password -file C:\intermediate1.cer
导入第二张中级CA证书
keytool -import -alias intermediate2 -keystore C:\keystore.jks -trustcacerts -storepass password -file C:\intermediate2.cer
2.导入代码签名证书
keytool -import -alias JavaCodesign -keystore C:\keystore.jks -trustcacerts -storepass password -file C:\mycert.cer
导入代码签名证书时,代码签名证书的别名必须和私钥别名一致。请留意导入CA证书和导入服务器证书时的提示信息,如果您在导入mycert.cer证书时使用的别名与私钥别名不一致,将提示“认证已添加至keystore中”而不是应有的“认证回复已安装在keystore中”。
3.签名 MIDlet
在开始签名您的MIDlet文件之前,请先复制JadTool.jar文件到Jre安装目录下的bin目录,然后再执行签署MIDlet命令。以下示例中,原始文件为test.jar及test.jad,中间过渡文件为temjad.jad,最终获取的签名文件为finaltest.jad。
往jad文件中添加签名证书:
java -jar JadTool.jar -addcert -alias JavaCodesign -keystore C:\keystore.jks -storepass password -inputjad C:\test.jad -outputjad C:\tempjad.jad
为jad文件添加私钥签名:
java -jar JadTool.jar -addjarsig -alias JavaCodesign -keystore C:\keystore.jks -keypass password -jarfile C:\test.jar -inputjad C:\tempjad.jad -outputjad C:\finaltest.jad
签名完成后,您可以使用记事本等文本编辑器打开finaltest.jad文件。MIDlet-Certificate-1-1后添加的就是您的签名证书代码,在 MIDlet-Certificate-1-2、MIDlet-Certificate-1-3、MIDlet-Certificate-1-4后添加的是VeriSign CA证书代码,而 MIDlet-Jar-RAS-SHA1后添加的则是使用您的证书私钥签名JAD代码后的签名摘要。
五、备份证书密钥库文件
备份您的密钥文件keystore.jks文件及其保护密码即可完成证书的备份。
在您备份您的keystore文件之前,建议使用list命令查询keystore.jks文件内容,以保障备份的文件正确无误。
Keytool -list -keysotre keystore.jks -storepass password
测试签名结果
将finaltest.jad和test.jar复制到您的目标手机上,通过jad文件来安装您的Java程序,测试您的代码签名。