整理一下兩年前用到的一些資料。
爲了使Applet或者Java Web Start程序可以訪問客戶端本地資源,須要對Applet或者JWS程序jar包進行數據簽名,當客戶端打開Applet或者JWS程序的時候,會提示是否容許該程序訪問本地資源,容許訪問則程序就能夠按照某種訪問權限訪問客戶機的本地資源了。
簽名步驟:
一、將程序打成jar包。
二、 用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年內有效)
三、 使用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爲生成的證書名稱,可修更名稱,但後綴不能修改。
四、使用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數字簽名完成。
還有一點要說的是Applet的權限問題, 要讓Applet能夠對本地的全部文件進行讀寫操做還須要配置C:\Program Files\Java\jdk1.6.0_33\jre\lib\security目錄下的java.security文件以下:
grant {permission java.security.AllPermission; };
(完成1~3步驟後,之後要用當前的簽名密匙庫和證書籤名其餘的jar包只須要執行第4步驟便可。)
附圖: