博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
给JAR签名
阅读量:4170 次
发布时间:2019-05-26

本文共 1686 字,大约阅读时间需要 5 分钟。

生产商业系统的开发者会购买证书来签名他们的JAR,一般的开发者则可以用匿名证书来签名他们的JAR。 

为JAR签名需要两个工具:你要用keytool来创建一个密匙,然后用JARSigner来用此密匙为JAR签名。可以用同一个密匙来为一个公司或一个开发者的所有JAR签名


为什么JAR要被签名?当用户启动一个
 Network Launching 
otocol (JNLP,Java网络加载协议)文件或使用一个applet时,这个JNLP或applet请求系统提供超过一般的访问。例如,它可能有一个“文件打开”菜单项用来装载一个.csv文件。进行这样的请求,就需要签名的JAR。假如它是匿名的,系统会询问用户是否打算信任JAR的签署者。


下面是一个使用keytool的例子。在实际应用中,请确保你用了可靠的的keypass和keystore的密码。后面为JAR签名的时候你会需要它们。


〉 keytool -genkey -alias csv -keypass invasion:earth

输入keystore密码: harry:Harrison

您的名字与姓氏是什么?

[Unknown]: bayard

您的组织单位名称是什么?

[Unknown]:

您的组织名称是什么?

[Unknown]: generationjava.com

您所在的城市或区域名称是什么?

[Unknown]: Springfield

您所在的州或省份名称是什么?

[Unknown]: 

该单位的两字母国家代码是什么

[Unknown]: US

〈CN=bayard, OU=Unknown, O=generationjava.com, L=Springfield, ST=Unknown, C=US〉正确吗?

[否]: 是


(译者注:原文为英文,此处为译者在中文环境下运行同一命令得到的控制台输出)

完成这一步骤后,keytool将在你的用户目录下产生一个名为.keystore的二进制文件。运行keytool -list将会列出在keystore中的条目。


〉keytool -list

输入keystore密码: harry:Harrison


Keystore 类型: jks

Keystore 提供者: SUN


您的keystore 包含 1 输入


csv, Tue Feb 05 22:49:44 EST 2002, keyEntry,

认证指纹(
): E8:FC:38:E3:59:72:0A:86:7F:57:C0:D3:4C:8E:25:FC


(译者注:原文为英文,此处为译者在中文环境下运行同一命令得到的控制台输出)


获得这个密匙后,你只需要提供它的别名来用它为JAR签名,这个别名是用keytool产生的。这一步用JARsigner工具来完成:


〉 JARsigner-verbose Csv.JAR csv

Enter Passphrase for keystore: harry:Harrison

Enter key pass
 for csv: invasion:earth

updating: META-INF/MANIFEST.MF

adding: META-INF/CSV.SF

adding: META-INF/CSV.DSA

signing: com/generationjava/lang/NumberW.class

signing: com/generationjava/io/Csv.class

...略...还有许多类... 

这一步添加了两个文件到你的JAR中:META-INF/CSV.SF和META-INF/CSV.DSA。DSA文件包含一个二进制的密匙,而SF文件则包含了JAR中所有类的一个列表,和每个文件的SHA-1摘要,所以可以验证它们的真实性。


现在你的JAR已经被签名了。运行JARsigner -verbose -verify Csv.JAR可以确定这个JAR已经被成功签名,现在你可以更好地控制你的JNLP或applet的安全模型。 

转载地址:http://myyai.baihongyu.com/

你可能感兴趣的文章
2018.4.39
查看>>
2018.4.40
查看>>
2018.5.27
查看>>
2018.5.51
查看>>
2018.5.52
查看>>
《python基础教程》答案(第四章)
查看>>
2018.5.53
查看>>
2018.5.54
查看>>
2018.5.55
查看>>
2018.5.58
查看>>
2018.12.5
查看>>
2018.12.6
查看>>
人智导(四):约束满足问题
查看>>
2018.12.7
查看>>
2018.12.8
查看>>
2018.12.9
查看>>
2018.12.29
查看>>
2018.12.31
查看>>
2019.1.2
查看>>
2019.1.4
查看>>