subject: 签名一个使用插件1。3版的java小程序 (作者:山水 欢迎转载! 哈哈!~!@#$%^&*)
date: sat, 14 apr 2001 13:33:24 +0800
from: “山水” <wflm@263.net>
newsgroups: chinafcu.java
签名一个使用插件1。3版的java小程序 (作者:山水 欢迎转载 哈哈!~!@#$%^&*)
为了签署一个小程序,有下面几件事情需要完成:
1。签名工具
2。一个ras keypair 和一个公钥的证书链。
3。把小程序用到的所有类文件打包成一个jar文件。
签名工具
现在有两种工具支持签署使用插件的小程序
1。jarsigner –可以在jdk里找到2。netscape signing tool 网景公司提供的一个签
署小程序的工具,用来签名在网景浏览器中使用的小程序。最新的版本可以到
http://developer.netscape.com/software/signedobj/jarpack.html 下载
注意:网景公司已经不再提供旧版本的签名工具的下载
rsa 证书
rsa 证书需要向一个支持ras的ca公司购买。如thawte
为了使用rsa证书签名你的小程序,你需要从thawte或是其它ca获得java代码签名证
书。在你登记你的证书的时候可能需要你提供证书签名请求文件(csr)你可使用以下
步骤:
———————————————————
1。使用keytool建立一个rsa keypair
2. c:\>c:\jdk1.3\bin\keytool -genkey -keyalg rsa -alias mycert
3. enter keystore password: ********* file://键入你keystore的密码
4. what is your first and last name? file://以下是键入你的信息
[unknown]: xxxxxxx yyy
5. what is the name of your organizational unit?
6. [unknown]: java software
7. what is the name of your organization?
8. [unknown]: sun microsystems
9. what is the name of your city or locality?
10. [unknown]: cupertino
11. what is the name of your state or province?
12. [unknown]: ca
13. what is the two-letter country code for this unit?
14. [unknown]: us
15. is <cn=xxxxxxx yyy, ou=java software, o=sun microsystems, l=cupertino,
st=ca, c=us> correct?
16. [no]: yes file://确认后按y结束
17. enter key password for <mycert> file://键入你key的密码。若按回车次密码与
键入的keystore的密码相同
18. (return if same as keystore password): *********
19。使用 “keytool -certreq” 建立一个证书请求文件,拷贝并粘贴到thawte的
webform上。例如:
20. c:\>c:\jdk1.3\bin\keytool -certreq -alias mycert
21. enter keystore password: *********
—–begin new certificate request—–
miibtjccar8caqawdjelmakga1uebhmcvvmxczajbgnvbagtaknbmriwe
aydvqqhewlddxblcnrpbm8xgtaxbgnvbaotefn1bibnawnyb3n5c3rlbx
mxfjaubgnvbastduphdmegu29mdhdhcmuxezarbgnvbamtcln0yw5szxk
gsg8wgz8wdqyjkozihvcnaqebbqadgy0amigjaogbaltgu8pova4y59eb
opjy65bwcsc/zpqtozkjlaw4wp+uhmebe+t2mho7p5zxjgf7elo3tv5ui
3vzggfnhgpf73eomow8ejhly4w/ysxkqejeqqvnogzad+quv7ld6dlov0
co5qvpmbao6mfai1xagx/4xu/6009jvqe0tgioocb5agmbaaggadanbgk
qhkig9w0baqqfaaobgqawmlrkifkiuytd4ykhbtpwsww/ikkgyfiunmml
df1dh8nesnxf3zli32f2yxvs7u3/xn6chntxh4hycjogyoabb3wnbaoqr
i6u6tllovgv9pmnuo6v1qb0xly1faizjimvybwlhoenka3bw7s8uivfdv
84co9dfugcr/pfrl3gtq==
—–end new certificate request—–
22。你可以从邮箱里收到thawte发给你的证书链,拷贝她并存处在一个文件中。可以使
用 “keytool -import” 把它导入你的keystore中
23. c:\>c:\jdk1.3\bin\keytool -import -alias mycert -file vssstanleynew.cer
24。导入成功后你的证书及证书支持的链将生效。你现在可以使用jarsigner签名你的
jar文件了。注意:必须所有的步骤使用同样的别名或是不使用别名(缺省的别名是
“mykey”)
打包java小程序
使用jarsigner和你的rsa证书签名你的小程序,小程序必须打包成jar文件。jar工具也
可以在jdk里找到。
例如 c:>c:\jdk1.3\bin\jar cvf c:\testapplet.jar .
added manifest
adding: testapplet.class (in = 94208) (out= 20103)(deflated 78%)
adding: testhelper.class (in = 16384) (out= 779)(deflated 95%)
这个例子将建立一个名为testapplet.jar的jar文件,它包含当前目录下的以及其子目
录下的所有文件
当jar文件建立后,你需要验证它的完整性。
c:>c:\jdk1.3\bin\jar tvf testapplet.jar
0 mon mar 06 18:02:54 pst 2000 meta-inf/
68 mon mar 06 18:02:54 pst 2000 meta-inf/manifest.mf
94208 wed mar 10 11:48:52 pst 2000 testapplet.class
16384 wed mar 10 11:48:52 pst 2000 testhelper.class
这样可以保证存储在jar里的类文件的是正确的
签名小程序
使用下面的步骤来签名小程序:
1。使用jarsigner签名jar文件,使用先前步骤中建里在你的keystore文件中的rsa证
书,确保别名相同。
2. c:\>c:\jdk1.3\bin\jarsigner c:\testapplet.jar mycert
3. enter passphrase for keystore: ********
4. use “jarsigner -verify -verbose -certs” to verify the jar files
5. c:>c:\jdk1.3\bin\jarsigner -verify -verbose -certs d:\testapplet.jar
245 wed mar 10 11:48:52 pst 2000 meta-inf/manifest.mf
187 wed mar 10 11:48:52 pst 2000 meta-inf/mycert.sf
968 wed mar 10 11:48:52 pst 2000 meta-inf/mycert.rsa
smk 943 wed mar 10 11:48:52 pst 2000 testapplet.class
smk 163 wed mar 10 11:48:52 pst 2000 testhelper.class
x.509, cn=xxxxxxx yyy, ou=java software,
o=sun microsystems, l=cupertino,
st=ca, c=us (mycert)
x.509, cn=sun microsystems, ou=java plug-in qa,
o=sun microsystems, l=cupertino, st=ca, c=us
x.509, emailaddress=server-certs@thawte.com,
cn=thawte server ca, ou=certification
services division, o=thawte consulting cc,
l=cape town, st=western cape, c=za
s = signature was verified
m = entry is listed in manifest
k = at least one certificate was found in keystore
i = at least one certificate was found in identity scope
jar verified.
6。现在你的小程序已经被正确的签名。可以发布你的这个小程序了。
发布签名过的小程序
1。在 embed/object 标记中加入 archive=xyz.jar
2。把jar文件及其html页放到web服务器上。