JAVA JNLP组件数字签名制作步骤

=============================================================
标题:JAVA JNLP组件数字签名制作步骤

关键字:JNLP 数字签名 java
作者:iuprg
2009 5.15

领域:Java j2ee
web 页面 JNLP组件下载运行的数字签名

[本文禁止转载,属于个人笔记]

=============================================================

 

这个证书签名需要专门购买,中国的数字签名机构好象还不成熟吧?

我这里只讨论自己的证书,也就是匿名的证书。

为JAR签名需要两个工具:

1。用keytool来创建一个密匙(同时指定时效,多久会过期,默认只给 6个月)
2。用JARSigner用此密匙为JAR签名。

可以用同一个密匙来为多个JAR签名。

注意:大小写,签名一致,数字签名过期

[谢绝转载,如有刊登请email联系drs163@163.com]
为什么JAR要被签名?当用户启动一个Java Network Launching Protocol (JNLP,Java网络加载协议)文件或使用一个applet时,这个JNLP或applet可能请求系统提供一些非一般的访问。比如“文件打开”等进行这样的请求,就需要签名的JAR。
如果它是匿名的,系统会询问用户是否打算信任JAR的签署者。

 


1.首先生成签名文件,执行完成后,会在本目录内生成一个.keystore的密钥文件,2kByte大小。
yourProj是别名 keypass后面是密文密码,keystore密码是存储密码(要改变此文时需要输入确认此密码)

在dos命令提示状态下输入

C:/Documents and Settings/Administrator>keytool -genkey -alias yourProj -keypas
s yourCompany:Kouling

[回车],屏幕提示:
输入keystore密码:  yourCompany:yourPassword
您的名字与姓氏是什么?
  [Unknown]:  ChinayourCompany
您的组织单位名称是什么?
  [Unknown]:  ChinayourCompany.com
您的组织名称是什么?
  [Unknown]:  Company
您所在的城市或区域名称是什么?
  [Unknown]:  City
您所在的州或省份名称是什么?
  [Unknown]:  Province
该单位的两字母国家代码是什么
  [Unknown]:  CN
CN=ChinayourCompany, OU=ChinayourCompany.com, O=Company, L=City, ST=Province, C=CN 正确
吗?
 [否]:  Y

 [谢绝转载,如有刊登请email联系drs163@163.com]

2.为此密钥加 有效期限:7200天,将近20年. [嘿嘿,足够用了吧? 再也别想6个月]

输入命令:
C:/Documents and Settings/Administrator>keytool -genkey -alias yourProj -keypass yourCompany:Kouling -selfcert -validity 7200

屏幕提示:
输入keystore密码:  yourCompany:yourPassword

注意:-validity 7200 这个就是加时效的参数,7200单位是“天”。

检查密钥文件,输入命令:
C:/Documents and Settings/Administrator>keytool -list
屏幕提示:
输入keystore密码:  yourCompany:yourPassword

Keystore 类型: jks
Keystore 提供者: SUN

您的 keystore 包含 1 输入

yourProj, 2009-5-15, keyEntry,
认证指纹 (MD5): D4:9D:C7:3A:91:B4:30:6A:4D:50:F1:7C:E7:F5:B9:49

说明已经生成成功完成!


3.开始为Jar包文件签名

用JARsigner工具

切换到项目jar包所在目录

 D:/yourPassword's--works/yourProj/webroot/app 的目录

输入dir可以看到:

2009-04-30  18:37    <DIR>          .
2009-04-30  18:37    <DIR>          ..
2009-04-30  17:55            56,317 commons-logging-1.1.jar
2009-04-30  18:37           550,863 yourCompany-app-v1.0.1.jar

 


输入命令 :
jarsigner -verbose -certs commons-logging-1.1.jar yourProj

 

注:
verbose输出详细信息
certs表示验证此jar包时输出证书信息

屏幕提示:
输入密钥库的口令短语: yourCompany:yourPassword
输入 yourProj 的密钥口令: yourCompany:Kouling
   正在添加: META-INF/YOURPROJ.SF
   正在添加: META-INF/YOURPROJ.DSA
   正在添加: org/
   正在添加: org/apache/
   正在添加: org/apache/commons/
   正在添加: org/apache/commons/logging/
   正在添加: org/apache/commons/logging/impl/

。。。
。。。

接着输入:
D:/yourProj/webroot/app>jarsigner -verbose -certs yourCompany-app-v1.0.1.jar yourProj

屏幕提示:
输入密钥库的口令短语: yourCompany:yourPassword
输入 yourProj 的密钥口令: yourCompany:Kouling
   正在添加: META-INF/YOURPROJ.SF
   正在添加: META-INF/YOURPROJ.DSA
   正在添加: org/

 

注意:重要签名给yourCompany-app-v1.0.1.jar文件,但它使用了另外的几个commonsxxxx包,也要签名,否则将来使用时会提示签名不一致的错误!

4。打开jar包文件的 META-INF目录可以看到
yourProj.SF
yourProj.DSA

以及被扩充的MANIFEST.MF文件
表明已经加入了签名文件

 

[完毕]

[演示图片]

1。签名文件

 

2。实际运行时的签名提示图和时效[谢绝转载,如有刊登请email联系drs163@163.com]

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安优小青和他的程序生活

我的文档对您有很大的帮助吗?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值