keyTool的用法
轉自http://blog.chinaunix.net/u/3641/showart_506402.htmlXfire實現WSS之創建密鑰對和數字證書
簽名和加密需要使用到數字證書和密鑰對,可以使用JDK提供的KeyTool工具創建密鑰對和數字證書。我們分別為服務端和客戶端創建RSA密鑰 對,并生成各自的數字證書(包含公鑰和數字簽名)。服務端和客戶端擁有各自的密鑰庫JKS文件,服務端的密鑰庫保存服務端的密鑰對和客戶端的數字證書,而 客戶端的密鑰庫保存客戶端的密鑰對和服務端的數字證書。
下面,我們來看看xfire提供的例子:
<XFIRE_HOME>/examples/ws-security/keys/generateKeyPair.bat批處理文件:
rem @echo off
#接受參數
echo alias %1
echo keypass %2
echo keystoreName %3
echo KeyStorePass %4
echo keyName %5
創建RSA密鑰對
keytool -genkey -alias %1 -keypass %2 -keystore %3 -storepass %4 -dname "cn=%1" -keyalg RSA
使用私鑰進行自簽名
keytool -selfcert -alias %1 -keystore %3 -storepass %4 -keypass %2
導出數字證書
keytool -export -alias %1 -file %5 -keystore %3 -storepass %4
<XFIRE_HOME>/examples/ws-security/keys/generateServerKey.bat文件:
下面兩行命名分別調用generateKeyPair.bat批處理文件為服務端和客戶端生成密鑰對
call generateKeyPair.bat server serverpass serverStore.jks storepass serverKey.rsa
call generateKeyPair.bat client clientpass clientStore.jks storepass clientKey.rsa
將服務端的數字證書導入客戶端的密鑰庫
keytool -import -alias server -file serverKey.rsa -keystore clientStore.jks -storepass storepass -noprompt
將客戶端的數字證書導入服務端的密鑰庫
keytool -import -alias client -file clientKey.rsa -keystore serverStore.jks -storepass storepass -noprompt
運行該批處理文件后,將分別為服務端和客戶端生成一個Java密鑰庫文件,它們分別擁有一個自己的密鑰對和對方的數字證書。我們通過表1對兩者密鑰庫文件的內容進行說明:
表1密鑰庫說明
服務端Java密鑰庫
客戶端Java密鑰庫
對應密鑰庫文件
serverStore.jks
clientStore.jks
密鑰庫密碼
storepass
storepass
庫中包含的內容
server密鑰對、client數字證書
client密鑰對、server數字證書
密鑰對別名
server
client
密鑰對私鑰的保護密碼
serverpass
clientpass
posted on 2011-01-11 15:56 此號已被刪 閱讀(598) 評論(0) 編輯 收藏 所屬分類: JAVA