首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> JSP 程式設計 >> 關於JSP

Java 2 環境下 Applet 數字簽名與部署實戰

     編輯:關於JSP

項目背景與環境

開發基於 Applet 的實時消息隊列監控程序,涉及本地資源訪問,必須進行數字簽名認證。環境:Windows 2000、WebLogic 6.0、JBuilder 4.0。關鍵區分:服務器端與客戶端文件分佈不可混淆。

客戶端準備:安裝 JRE 1.3.0_01

替換 IE 默認 JVM,從 java.sun.com 下載安裝。HTML 頁面需包含自動下載 JRE 的代碼(見後文)。

服務器端操作步驟

  1. 打包:解壓依賴包 (如 jar xf weblogic.jar),與編譯類放同一目錄,執行 jar cvf monitor.jar *.class 生成 monitor.jar。
  2. 創建密鑰庫與密鑰:keytool -genkey -keystore monitor.keystore -alias monitor,按提示輸入信息與密碼。
  3. 簽名 JAR:jarsigner -keystore monitor.keystore monitor.jar monitor,原文件被簽名。
  4. 導出公鑰證書:keytool -export -keystore monitor.keystore -alias monitor -file monitor.cer 生成 monitor.cer(唯一需分發給客戶端的文件)。
  5. 將 monitor.jar、monitor.keystore、monitor.cer 拷貝至 WebLogic 應用目錄 (如 C:\bea\wlserver6.0\config\mydomain\applications\DefaultWebApp_myserver\...)。

客戶端配置

  1. 安裝 JRE 1.3.0_01。
  2. 拷貝 monitor.cer 至 JRE\lib\security\ 目錄。
  3. 導入系統 cacerts:keytool -import -alias monitor -file monitor.cer -keystore cacerts,密碼為默認 changeit。
  4. 修改策略文件:運行 policytool,打開 java.policy,修改 keystore 為 cacerts (JKS),添加策略項:
    • CodeBase: https://SERVER_IP:7001/* (端口視服務器而定)
    • SignedBy: monitor
    • 權限: AllPermission

HTML 調用代碼 (IE ActiveX 方式)

<html>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=gb2312">
<center>
<h3>消息中心實時監控平台</h3>
<hr>
<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
 width="900" height="520" align="baseline"
 codebase="https://192.168.2.217:7001/j2re-1_3_0_01-win-i.exe#Version=1,3,0,0">
<PARAM NAME="java_code" VALUE="wise.monitor.applet.monitorApplet">
<PARAM NAME="java_codebase" VALUE="monitor/classes">
<PARAM NAME="java_type" VALUE="application/x-java-applet;version=1.3">
<PARAM NAME="ARCHIVE" VALUE="monitor.jar">
<PARAM NAME="scriptable" VALUE="true">
</OBJECT>
</center>
</html>

實踐優化建議

  • 參數外部化:將變化參數放入 HTML 傳給 Applet,避免頻繁重新打包簽名。
  • 客戶端分發簡化:可直接拷貝已配置好的 cer、java.policy、cacerts 至客戶端,但可能覆蓋原有認證。
  • JAR 拆分優化:利用 JRE 控制面板配置使用本地已安裝的共享庫,減小下載體積。

Applet 簽名部署流程繁瑣,但掌握核心步驟與優化策略,可有效解決本地資源訪問的安全限制。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved