设为首页 加入收藏

TOP

JAVA JNLP组件数字签名制作步骤
2014-11-24 02:38:49 来源: 作者: 【 】 浏览:2
Tags:JAVA JNLP 组件 数字签名 制作 步骤

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


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


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



为 什么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


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

.
2009-04-30 18:37
..
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。实际运行时的签名提示图和时效




】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇如何解决Java WEB应用中的乱码问题 下一篇Ubuntu下ror开发环境搭建笔记(IDE..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: