制作數字簽名(轉)
一、服務器端:
1.將程序需要用到的各種包文件全部解壓,然后使用JDK的打包命令將編譯好的監控程序.class和剛才解壓的包一起打包到一個包中。都是dos狀態下的命令,具體命令見jdk1.4的bin目錄下,(這里的文件包括JDBC驅動的三個文件)
命令如下:
jar cvf monitor.jar *.class
此命令生成一個名為monitor.jar的包
2.為剛才創建的包文件(monitor.jar)創建keystore和keys。其中
keystore將用來存放密匙(private keys)和公共鑰匙的認證,alias別名這兒取為monitor。
命令如下:
keytool -genkey -keystore monitor.keystore –alias monitor -validity 4000
此命令生成了一個名為monitor.keystore的keystore文件,
接著這條命令,系統會問你好多問題,比如你的公司名稱,你
的地址,你要設定的密碼等等,都由自己的隨便寫。
3.使用剛才生成的鑰匙來對jar文件進行簽名
命令如下:
jarsigner -keystore monitor.keystore monitor.jar monitor
這個命令將對monitor.jar文件進行簽名,不會生成新文件。
4.將公共鑰匙導入到一個cer文件中,這個cer文件就是要拷貝到客戶端的唯一文件 。
命令如下:
keytool -export -keystore monitor.keystore -alias monitor -file monitor.cer
此條命令將生成monitor.cer認證文件,當然這幾步都有可能問你剛
才設置的密碼。
這樣就完成了服務器端的設置。這時你就可以將jar文件和keystore文件以及cer文件(我這兒是monitor.jar,monitor.keystore,monitor.cer)拷貝到服務器的目錄下了,我用的是Tomcat,所以就拷貝到C:\JBuilder8\thirdparty\jakarta-tomcat-4.1.12-LE-jdk14\webapps\ROOT下的自己建的一個目錄下了。
二、客戶端:
1. 首先應該安裝2re-1_4_1_03-windows-i586-i,然后將服務器端生成的monitor.cer
文件拷貝到jre的特定目錄下,我這兒是:
C:\Program Files\Java\j2re1.4.1_03\lib\security目錄下。
2. 將公共鑰匙倒入到jre的cacerts(這是jre的默認keystore)
命令如下:
keytool -import -alias monitor -file monitor.cer
-keystore cacerts
注意這兒要你輸入的是cacerts的密碼,應該是changeit,而不
是你自己設定的keystore的密碼。
3. 修改policy策略文件,在dos狀態下使用命令 policytool
系統會自動彈出一個policytool的對話框,如圖4所示,在這里面首先選擇file菜單的open項,
打開C:\Program Files\Java\j2re1.4.1_03\lib\security目錄下的java.poliy文件,然后在edit菜單中選擇Change keystore ,在對話框中new keystore url:中輸入
file:/ C:/Program Files/Java/j2re1.4.1_03/lib/security/cacerts,
這兒要注意反斜杠,在new keystore type 中輸入JKS,這是cacerts的固定格式,然后單擊Add Policy Entry,在出現的對話框中CodeBase中輸入:
http://168.168.1.202:8080/*
其中的168.168.1.202是我服務器的IP地址,8080是我的Tomcat的端口,如果你是在別的應用服務器上比如說是apache,那端口號就可以省略掉。
在SignedBy中輸入(別名alias):這兒是Monitor
然后單擊add peimission按鈕,在出現的對話框中permission中選擇你想給這個applet的權限,這兒具體有許多權限,讀者可以自己找資料看看。我這兒就選用allpeimission,右邊的signedBy中輸入別名:monitor
最后保存,在file菜單的save項。
當然你可以看見我已經對多個包實現了簽名認證。
看需要可以選擇設不設置客戶端.
posted on 2009-05-19 16:40 九寶 閱讀(225) 評論(0) 編輯 收藏 所屬分類: Java