JAVA JNLP組件數字簽名製作步驟

=============================================================
標題:JAVA JNLP組件數字簽名製作步驟

關鍵字:JNLP 數字簽名 java
作者:iuprg
2009 5.15

領域:Java j2ee
web 頁面 JNLP組件下載運行的數字簽名

[本文禁止轉載,屬於個人筆記]

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

 

這個證書籤名需要專門購買,中國的數字簽名機構好象還不成熟吧?

我這裏只討論自己的證書,也就是匿名的證書。

爲JAR簽名需要兩個工具:

1。用keytool來創建一個密匙(同時指定時效,多久會過期,默認只給 6個月)
2。用JARSigner用此密匙爲JAR簽名。

可以用同一個密匙來爲多個JAR簽名。

注意:大小寫,簽名一致,數字簽名過期

[謝絕轉載,如有刊登請email聯繫[email protected]]
爲什麼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聯繫[email protected]]

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聯繫[email protected]]

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章