项目中的一个Applet程序需要添加新的机能,在我修改编译并打包之后,发现原本在Eclipse下可以正常运行的程序,在IE下总是报错“java.lang.SecurityException: Unable to create temporary file” 和 “java.security.AccessControlException: access denied”。 查询文档,恍然大悟,因为程序里我要创建临时文件,并且要访问本地文件。呵呵,询问已经跑到IBM的老大方知,每次重新编译后都要进行数字签名。于是,数字签名开始了。。。。
第一步:当然是打包了,可以用JAR命令或者是用IDE直接打包,我是用Eclipse打得包,打包之后,把必须的一些文件也拖进来,ok! 我这里包的名称为(imgentry.jar)
第二步:为刚才创建的包文件(imgentry.jar)创建keystore和keys。其中keystore将用来存放密匙(private keys)和公共钥匙的认证,alias别名这儿取为imentry。
(由于我是懒人,就直接把刚才打好的JAR放到了C:\j2sdk1.4.2_07\bin下,呵呵!~)
命令如下:
keytool -genkey -keystore imentry.keystore –alias imentry
此命令生成了一个名为imentry.keystore的keystore文件。 系统首先是提示你输入密码,记下,后面会用到。
接着,系统会给出很多问题,随便填好了。
就填“123456”好了,此时,密钥已经制成,下面我们就可以给我们的JAR进行数字签名了。
第三步:数字签名。
命令如下:
jarsigner -keystore imentry.keystore imgentry.jar imentry
这个命令将对imgentry.jar文件进行签名,不会生成新文件。
然后,系统会产生一个imgentry.jar.sin的临时文件,等这个临时文件消失,数字签名就进行结束了。
至此,Applet的数字签名工作,宣布结束。