1。用keytool來創建一個密匙(同時指定時效,多久會過期,默認只給6個月)
2。用JARSigner用此密匙為JAR簽名。
可以用同一個密匙來為多個JAR簽名。
P.S. keytool、JARSigner必須設定好環境變數將Path加入java bin path ex:C:\Program Files\Java\jdk1.6.0_20\bin 才可在command mode呼叫
注意:大小寫,簽名一致,數字簽名過期
為什麼JAR要被簽名?當用戶啟動一個Java Network Launching Protocol (JNLP,Java網絡加載協議)文件或使用一個applet時,這個JNLP或applet可能請求系統提供一些非一般的訪問。比如“文件打開”等進行這樣的請求,就需要簽名的JAR。
如果它是匿名的,系統會詢問用戶是否打算信任JAR的簽署者。
1.首先生成簽名文件,執行完成後,會在使用者目錄內生成一個.keystore的密鑰文件,2kByte大小。
yourProj是別名keypass後面是密文密碼,keystore密碼是存儲密碼(要改變此文時需要輸入確認此密碼)
在dos command mode(cmd)提示狀態下輸入
>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個月]
輸入命令:
>keytool -genkey -alias yourProj -keypass yourCompany:Kouling -selfcert -validity 7200
屏幕提示:
輸入keystore密碼: yourCompany:yourPassword
注意:-validity 7200 這個就是加時效的參數,7200單位是“天”。
檢查密鑰文件,輸入命令:
>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包所在目錄
輸入命令:
>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/
。。。
。。。
4。打開jar包文件的META-INF目錄可以看到
yourProj.SF
yourProj.DSA
以及被擴充的MANIFEST.MF文件
表明已經加入了簽名文件
引用至 http://litaigang2009.blog.163.com/blog/static/128562280201032112232391/
沒有留言:
張貼留言