未簽名的 Applet/JWS 運行於嚴格沙箱:禁止訪問本地檔案、網路連線僅限同源。透過數位簽名並獲用戶授權,可提權至「全許可權」。本文演示從金鑰生成、JAR 簽名、HTML/JNLP 部署到用戶授權的完整流程。
keytool、jarsigner)keytool -genkey -alias mykey -keystore mystore
# 依提示輸入:keystore 密碼、姓名、組織、城市、省份、國家代碼 (CN)
# 輸入 key 密碼(可同 keystore 密碼)
產生 mystore 檔案,包含私鑰與自簽名公開鑰證書。
jarsigner -keystore mystore test.jar mykey
# 輸入 keystore 密碼、key 密碼
<applet code="test.TestApplet.class"
archive="test.jar"
width="400" height="300">
</applet>
瀏覽器載入時彈出安全對話框,顯示「發行者未經驗證」,用戶選「授權於會話」或「總是授權」即可獲得權限。
在 .jnlp 根元素下加入:
<security>
<all-permissions/>
</security>
首次啟動彈出信任對話框,用戶選「啟動」後後續不再提示(相當於本地安裝)。
deployment.properties 白名單降低提示頻率。