傳統上,一個web applet通常是運作在一個Security manager上,而通常是由Browser或Java Web Start plugin來啟動,而一般的applications是不需運作在security manager,當然你也可以使用Security Manager來執行,VM參數加入(-Djava.security.manager)。
而透過Browser開啟某個applet網頁,Browser是先到相對應網址去下載jar檔,然後再透果本機端的jvm來執行,但其實這樣的行為是不安全的,故browser在開啟applet時,將會啟動Security Manager模式,所造成的結果,即所有執行的jar檔裡沒有包含signer的,一律不給予執行,有的將會在詢問使用者是否可執行。(如下圖)
所以說,現在只要是要透過Browser開啟的jar檔(即使是自己寫的也是),都必須加入Certificate 。
步驟如下:
1. 申請 Certificate (windows檔案在..\Java\jdk1.6.0_43\bin\keytool.exe )
#keytool -genkey
Note:預設檔案將會被建立在user目錄下.keystore檔別名為 mykey,而此檔案包含用戶的public key,private key和Certificate。(windows:C:\Documents and Settings\UserName\.keystore)
2. 將Certificate加入到jar檔裡(windows檔案在..\Java\jdk1.6.0_43\bin\jarsigner.exe )
指令 : jarsigner [jar file] [alias name]
#jarsigner calculator.jar mykey
Reference :
1. Java Keytool的使用及申請憑證(以Microsoft Active Directory Certificate Services為例)
2. Java(含Applet)的安全機制(Security Manager)
沒有留言:
張貼留言