VeriSign和Thawte的Java代码签名证书可以用于数字签名运行J2ME MIDlet(MIDP 2.0)代码,支持目前市面上流行的各种基于Java的手机多媒体和交互应用,运行签名后的MIDlet Suite就不会弹出烦人的警告框了!但VeriSign Java代码签名证书通用性更好,支持更多类型的手机和PDA等移动终端。

    第6步:常见问题解答

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

    1.不能验证证书

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

    图12

    显示“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文件已经被修改

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

    图13

    “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)中有一个或多个不属于所属的保护域,会允许安装。

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

    图14

    【责任编辑:火凤凰 TEL:(010)68476606-8007】



    共4页: 上一页 [1] [2] [3] 4
    【内容导航】

51CTO旗下网站

领先的IT技术网站 51CTO 领先的中文存储媒体 WatchStor 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 移动互联网生活门户 灵客风LinkPhone