整理一下兩年前用到的一些資料。
為了使Applet或者Java Web Start程序能夠訪問客戶端本地資源,需要對Applet或者JWS程序jar包進行數據簽名,當客戶端打開Applet或者JWS程序的時候,會提示是否允許該程序訪問本地資源,允許訪問則程序就可以按照某種訪問權限訪問客戶機的本地資源了。
簽名步驟:
1、將程序打成jar包。
簽名步驟:
1、將程序打成jar包。
2、 用keytool命令生存.store(密匙庫)文件。
(1)、keytool.exe文件在JDK安裝目錄下(C:\Program Files\Java\jdk1.6.0_33\bin)
在DOC命令下輸入:cd C:\Program Files\Java\jdk1.6.0_33\bin
(2)、再輸入指令: keytool -genkey -keystore mystore.store -alias mystore -validity 3650
輸入指令后回車,會提示輸入store密碼、名字與姓氏、組織單位名稱、組織名稱、所在城市或區域名稱、州或省份名稱、單位的兩字母國家代碼;依次輸入完成最后提示是否正確,輸入y確認信息,提示輸入主密碼,如果和keystore密碼相同直接回車完成。這樣在目錄C:\Program Files\Java\jdk1.6.0_33\bin下面就生成了一個mystore.store文件。
注:mystore.store為密匙庫名稱,可以隨意改但后綴不能改;-alias后面的mystore為別名,可以改成自己的名稱;-validity后面的3650表示的是10年(用這個證書簽名的程序10年內有效)
3、 使用keytool.exe工具導出簽名時用到的證書。
(1)、在DOS窗口執行命令: keytool -export -keystore mystore.store -alias mystore -file mystore.cert
命令執行成功后,會在目錄C:\Program Files\Java\jdk1.6.0_33\bin下生成了一個mystore.cert文件。
注:mystore.store為第二步驟生成的密匙庫名稱、mystore也是第二步驟指定的別名、mystore.cert為生成的證書名稱,可修改名稱,但后綴不能修改。
4、使用jarsinger工具簽名jar包。
(1)、 jarsigner.exe文件在JDK安裝目錄下(C:\Program Files\Java\jdk1.6.0_33\bin)
在第2步驟 DOS窗口中輸入指令: jarsigner -keystore mystore.store app.jar mystore
回車,依次按提示操作直到結束。
注:mystore.store為第二步驟生成的密匙庫名稱、app.jar為第1步驟打包的jar、mystore為提供者的名稱,此處我們設置為我們的別名。
到此已經給jar數字簽名完成。
(1)、 jarsigner.exe文件在JDK安裝目錄下(C:\Program Files\Java\jdk1.6.0_33\bin)
在第2步驟 DOS窗口中輸入指令: jarsigner -keystore mystore.store app.jar mystore
回車,依次按提示操作直到結束。
注:mystore.store為第二步驟生成的密匙庫名稱、app.jar為第1步驟打包的jar、mystore為提供者的名稱,此處我們設置為我們的別名。
到此已經給jar數字簽名完成。
還有一點要說的是Applet的權限問題, 要讓Applet可以對本地的所有文件進行讀寫操作還需要配置C:\Program Files\Java\jdk1.6.0_33\jre\lib\security目錄下的java.security文件如下: grant {permission java.security.AllPermission; };
(完成1~3步驟后,以后要用當前的簽名密匙庫和證書簽名其他的jar包只需要執行第4步驟即可。)
附圖:
