Keytool是一個Java數據證書的管理工具。
keystore
Keytool將密鑰(key)和證書(certificates)存在一個稱為keystore的文件中
在keystore里,包含兩種數據:
密鑰實體(Key entity)——密鑰(secret key)又或者是私鑰和配對公鑰(采用非對稱加密)
可信任的證書實體(trusted certificate entries)——只包含公鑰
Alias(別名)
每個keystore都關聯這一個獨一無二的alias,這個alias通常不區分大小寫
keystore的存儲位置
在沒有制定生成位置的情況下,keystore會存在與用戶的系統默認目錄,
如:對于window xp系統,會生成在系統的C:\Documents and Settings\UserName\
文件名為“.keystore”
keystore的生成
引用
keytool -genkey -dname "cn=Mark Jones, ou=JavaSoft, o=Sun, c=US" -keyalg RSA -alias business -keypass kpi135 -keystore C:\working\mykeystore -storepass ab987c -validity 180
參數說明:
-genkey表示要創建一個新的密鑰
-dname表示密鑰的Distinguished Names,
CN=commonName
OU=organizationUnit
O=organizationName
L=localityName
S=stateName
C=country
Distinguished Names表明了密鑰的發行者身份
-keyalg使用加密的算法,這里是RSA
-alias密鑰的別名
-keypass私有密鑰的密碼,這里設置為kpi135
-keystore 密鑰保存在C:\working目錄下的mykeystore文件中
-storepass 存取密碼,這里設置為ab987c,這個密碼提供系統從mykeystore文件中將信息取出
-validity該密鑰的有效期為 180天
cacerts證書文件(The cacerts Certificates File)
改證書文件存在于java.home\lib\security目錄下,是Java系統的CA證書倉庫
CA證書的導入(Importing Certificates)
命令:
引用
keytool -import -alias joe -file jcertfile.cer
這個命令將證書文件jcertfile.cer中別名為joe的證書導入系統的受信任證書列表中
通常該命令用以導入來自CA中心的證書(Importing a Certificate for the CA)
導入被CA中心授權的證書(Importing the Certificate Reply from the CA)
命令:
引用
keytool -import -trustcacerts -file VSMarkJ.cer
證書的導出(Exporting Certificates)
命令:
引用
keytool -export -alias jane -file janecertfile.cer
這個命令將別名為jane的證書導出到證書文件jcertfile.cer中
生成的證書可以交付客戶端用戶使用,用以進行SSL通訊,或者伴隨電子簽名的jar包進行發布者的身份認證。