问题:
我在《Java常见问题集锦》中看到,产生一个简单的签名applet的过程如下:“
1。//产生密钥,密钥别名为joe,口令为sign12,存放在密钥库joestore中
2。//将SignedApplet.class及相关文件打包成jar文件
3。//利用keytool生成的自签名的证书产生签名applet(jar文件)
4。//将自签名证书从keystore中输出到文件(证书文件)
而对于签名applet的接受方Susan,需要通过如下步骤来安全地执行Joe编写的签名applet:
1。得到Joe的证书并将之读入到密钥库中susanstore中
2。运行policytool产生满足Susan要求的policy文件”
这样,在客户端可以得到一个证书,一个密钥库susanstore和一个policy文件,接下来该怎么做呢?如何使用这两个文件,使得Applet可以正常运行呢?
解答:
一:
c:/zzz/SignedAppletDemo>jar cvf myapplet.jar *.*
执行完此步后,在signedappletdemo文件夹下产生myapplet.jar文件,主要是.class文件
二:
c:/zzz/SignedAppletDemo>keytool -genkey -keystore mystore.store -alias my.store
执行完此步后,目录下出现mystore.store文件,为密钥库,此密钥库别名为my.store。
三:
c:/zzz/SignedAppletDemo>keytool -export -keystore mystore.store -alias my.store -file mycert.cer
执行完此步后,目录下出现mycert.cer文件,就是一张证书
四:
c:/zzz/SignedAppletDemo>jarsigner -keystore mystore.store myapplet.jar my.store
此步骤是对密钥库签名
然后把myapplet.jar,mystore.store,mycert.cer复制到用户目录下。
以上是服务器所做步骤
以下是客户机所做步骤
五:
c:/zzz/SignedAppletDemo>keytool -import -keystore client.store -alias my.store -file mycert.cer
用户同意接收该证书,信任该证书颁发者的所有作品,也就是把收到的证书导入本地密钥库。
六:
修改用户的policy文件,文件名为.java.policy放在用户主目录下。
七:
对接收的文件进行验证
C:/zzz/SignedAppletDemo>jarsigner -verify -verbose -keystore mystore.store myapplet.jar
jar verified.
八:
打开接收文件
C:/zzzSignedAppletDemo>jar -vxf myapplet.jar
那么用户就得到所有被签名的文件。
九:
在用户端把生成的证书导入,即安装证书。