服务器SSL证书产品
SGC超真SSL
超快SSL
代码签名证书产品
微软代码签名证书
移动代码签名证书
客户端数字证书产品
个人数字证书
PKI(CA)托管产品
超管CA-企业版
各类产品分网站
TrustCenter产品
VeriSign产品
WTK MIDlet代码签名证书申请和使用指南

VeriSign/Thawte 的Java代码签名证书可以用于数字签名运行J2ME MIDlet(MIDP 2.0)代码,支持目前市面上流行的各种基于Java的手机多媒体和交互应用,运行签名后的MIDlet Suite就会显示软件发行商名称,否则会显示让用户不敢下载的警告“应用软件来源未知,继续?”。同时,签名后访问网络等都不会弹出烦人的警告框了,让手机应用更加安全!但请注意: 并不是所有手机都支持数字签名机制, Thawte Java代码签名证书对索爱手机支持多些,而VeriSign Java代码签名证书则对诺基亚手机支持多些,您可以提供使用两种证书签名的两种版本供用户选择安装,使得您的MIDlet软件适用手机范围更广和支持最多的手机型号。

以下MIDlet签名指南根据Sun网站和VeriSign/Thawte网站上的文章(网页)整理,请同时参考原文:
    (1) What's New in the J2ME Wireless Toolkit 2.0
    (2) Understanding MIDP 2.0's Security Architecture
    (3) Java ME - Micro App Development Made Easy
    (4) Nokia MIDlet(MIDP 2.0)代码签名证书申请和使用指南

本签名指南是基于 Sun Java Wireless Toolkit 2.5.1 中文版 使用指南 编写,如果您还没有此开发工具可以到 SUN 网站上 下载 合适的开发工具(推荐下载最新的 2.5.1,因为2.2版本的仿真OTA运行有问题Bug,签名后不显示已经签名的签名信息)。

同时,请一定要先参考: MIDP 2.0安全机制,充分理解MIDP 2.0的安全机制有助于签名MIDlet的成功部署。

第1步 创建Keystore和私钥 Step 1. Create a Keystore and Key Pair:

如图1所示,打开开发工具包中的KToolbar, 点击“打开项目”,再在主菜单“项目”中选择“签署”,如图2所示,如果您已经有了Java代码签名证书的密钥对(.sks文件),则您可以点击“导入密钥对”导入您的证书密钥对,导入时需要输入您的私钥密码。如果您还没有申请证书,则您可以点击“新建密钥对”来生成密钥对(Keystore和私钥),正确填写证书信息后点击“创建”即可。
但请注意以下3点:
(1) 填写国家(Country)字段时只能填写国家名称缩写CN;
(2) 在生成密钥对时并没有提示输入私钥密码,但导入时需要输入私钥密码,缺省密码为“password”;
(3) VeriSign代码签名证书不支持中文,请填写正确的英文名称,而Thawte代码签名证书支持中文,您可以根据需要在单位名称、部门名称、所在城市和省份等填写中文名称或英文名称,如果填写英文公司名称,则一定只能是中文名称的直接翻译,建议先咨询WoSign是否可以使用自己翻译的公司名称英文名。

 

请注意: 在创建密钥对的时候,请一定要选择安全保护域:maximum

如图3所示,点击别名“mykey”就可以显示证书信息,请注意:此时显示的证书签发者为自己,因为还没有提交CSR申请证书。

第2步 生成证书签署请求文件(CSR) Step 2. Generate the CSR and request your certificate:

如图4所示,点击菜单“密钥库”- “生成CSR”后会显示CSR文件的缺省保存目录和文件名,再点击“创建”生成CSR文件:mykey.csr,并把此文件发给WoSign,等待1-2个工作日就可颁发证书。

 第3步 把证书导入到 keystore中 Step 3. Import the certificate reply into your keystore:

一旦您的Java代码签名证书颁发,VeriSign的证书则附在颁发通知邮件的下面,直接完整复制(包括: -----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE-----),并粘贴到记事本本上保存为mycert.cer文件即可。Thawte的证书则需要到Thawte网站上去下载,注意选择 PKCS #7 格式,此证书格式含有您的证书和根证书链,Keytool要求此格式证书。把此证书使用文本编辑器保存为mycert.cer。再点击“导入证书”按钮导入您的证书,如图5所示,选择“替换证书链”,并输入您生成CSR文件时设置的别名(如:mykey)。一旦导入成功,您会看到此证书的签发者为 Thawte 或 VeriSign 了。现在,请您马上备份您的证书对(私钥和公钥)keystore文件:keystore.ks,最好是备份到光盘或其他电脑上,以便以后导入证书用!一般在开发工具的安装目录下,如:C:\WTK2.5.1\appdb 。

第4步 签名MIDlet Step 4.Sign your MIDlet:

现在,您可以签名您的MIDlet了,先选中证书别名,再点击“签署”按钮,就即刻完成签名,提示“已签名的MIDlet套件”。

现在,.jad 就已经包含了您的私钥签名和公钥证书,您可以使用记事本打开JAD文件,会看到已经增加了许多字母,如图8所示,仔细查看就可以看到 MIDlet-Certificate-1-1:后面就是您的签名证书,而 MIDlet-Certificate-1-2:后面就是签名证书 Thawte Code Signg CA, MIDlet-Certificate-1-3:后面就是颁发证书的顶级证书 Thawte Premium Server CA,而 MIDlet-Jar-RAS-SHA1:后面就是使用您的私钥签名JAD代码后的签名摘要。请注意:使用VeriSign Java代码签名证书签名后只有2个证书文件(MIDlet-Certificate-1-1 和 MIDlet-Certificate-1-2)。

第5步 仿真运行和部署已经签名的MIDlet Step 5. Emulate and Deploy your MIDlet:

这样,就完成了MIDlet代码的数字签名,可以正常使用了。如图9所示,会显示“证书:有”,并显示软件发行商的公司名称“组织:”,如图9所示:

我们来对比一下如果没有数字签名安装MIDlet的提示情况,如下图10所示,会显示让用户不敢下载的警告“应用软件来源未知,继续?”,强烈建议用户不要安装没有签名的MIDlet,否则一旦安装了恶意代码,您的手机可能就报废了!

 

第6步: 导入证书密钥对 Import key pair

如果您需要导入您的证书密钥对,如下图所示,则点击导入密钥对按钮,提示需要输入密钥存储口令,缺省为:password,再选择密钥库中的证书别名,再选择安全保护域为:Maximum,就导入成功。

附:常见问题解答

    如果您使用签名工具,一般都是没有问题,请检查 JAD 文件是否含有 MIDlet-Certificate-1-1 、 MIDlet-Certificate-1-2 、 MIDlet-Certificate-1-3 属性和 MIDlet-Jar-RSA-SHA1 属性。问题往往出在部署过程,主要常见问题有:

1. 不能验证证书

    签名成功后仿真时出现如下图11所示警告信息:

    显示“ System does not recognize who is trying to authorize the application ”,意思是无法验证证书颁发机构。主要有 2 个原因:

    (1) 证书导入问题:您申请证书时会生成私钥和 CSR( 证书请求文件 ) ,在颁发证书给您之前,一定不能删除 NDS 3.0 或 WTK 2.5 等签名工具,也不要再动证书管理,不要再使用自签证书做实验等。而取到证书后,必须在生成 CSR 的同一台电脑上的同一签名工具中导入证书,否则证书不能导入成功;

    (2) 使用的签名证书的根证书没有预置在手机中 ( 包括自签证书 ) ,请一定要购买 Thawte 或 VeriSign 的 Java 代码签名证书,其他 CA 颁发的证书都不支持。

2. JAR 文件已经被修改

    如下图12所示,显示如下警告信息:

    “ The signature of the JAR is invalid ”意思是 JAR 文件签名无效。主要有 2 个原因:

    (1) 签名 MIDlet 后修改了 JAR 文件:也许您发现签名时签名工具读取 JAD 文件,而不是 JAR 文件,这样会误以为签名时是签的是 JAD 文件,而与 JAR 文件无关。其实,签名时会计算出 JAR 文件的 SHA-1 摘要,并把此摘要写在 JAD 文件中。如果您修改了 JAR 文件,则其 SHA-1 摘要就变了, MIDlet 在验证时就会出错。所以,您签名 MIDlet 后,一定不能再修改 JAR 文件,如果要修改,则需要重新签名;

    (2) JAR 文件在网络传输或下载过程中被篡改,可能是下载的原因,也有可能是被其他人非法故意篡改。哪怕是一个字节的修改,也不能通过验证。这就是签名的基本功能之一。

3. 许可不匹配

    如果 MIDlet 中的许可属性 ( MIDlet-Permissions ) 中有一个或多个不属于所属的保护域,则仍然不允许安装。而如果 MIDlet 中的可选许可属性 ( MIDlet-Permissions-Opt ) 中有一个或多个不属于所属的保护 域,会允许安装。

    如下图13所示,如果我们修改 http 许可为: javax.microedtion.io.Connector.htt ,则会 显示如下警告信息:

 
® 2002-2007 WoSign, Inc. & 深圳市沃通电子商务服务有限公司 All Rights Reserved
中国深圳市高新技术产业园南区方大大厦 18 楼 邮编 :518057
网站使用条款       隐私声明       中国增值电信业务经营许可证编号:粤B-20040618
WoSign®、WoTrust®、超快SSL®、超真SSL®、沃通®、WoTone® 为 WoSign, Inc. & 深圳市沃通电子商务服务有限公司注册商标