背景知識(shí):非對(duì)稱加密算法、公鑰(public key)和私鑰(private key)
Keytool是一個(gè)Java數(shù)據(jù)證書(shū)的管理工具。
keystore
Keytool將密鑰(key)和證書(shū)(certificates)存在一個(gè)稱為keystore的文件中
在keystore里,包含兩種數(shù)據(jù):
密鑰實(shí)體(Key entity)——密鑰(secret key)又或者是私鑰和配對(duì)公鑰(采用非對(duì)稱加密)
可信任的證書(shū)實(shí)體(trusted certificate entries)——只包含公鑰
Alias(別名)
每個(gè)keystore都關(guān)聯(lián)這一個(gè)獨(dú)一無(wú)二的alias,這個(gè)alias通常不區(qū)分大小寫(xiě)
keystore的存儲(chǔ)位置
在沒(méi)有制定生成位置的情況下,keystore會(huì)存在與用戶的系統(tǒng)默認(rèn)目錄,
如:對(duì)于window xp系統(tǒng),會(huì)生成在系統(tǒng)的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
參數(shù)說(shuō)明:
-genkey表示要?jiǎng)?chuàng)建一個(gè)新的密鑰
-dname表示密鑰的Distinguished Names,
CN=commonName
OU=organizationUnit
O=organizationName
L=localityName
S=stateName
C=country
Distinguished Names表明了密鑰的發(fā)行者身份
-keyalg使用加密的算法,這里是RSA
-alias密鑰的別名
-keypass私有密鑰的密碼,這里設(shè)置為kpi135
-keystore 密鑰保存在C:\working目錄下的mykeystore文件中
-storepass 存取密碼,這里設(shè)置為ab987c,這個(gè)密碼提供系統(tǒng)從mykeystore文件中將信息取出
-validity該密鑰的有效期為 180天
cacerts證書(shū)文件(The cacerts Certificates File)
改證書(shū)文件存在于java.home\lib\security目錄下,是Java系統(tǒng)的CA證書(shū)倉(cāng)庫(kù)
CA證書(shū)的導(dǎo)入(Importing Certificates)
命令:
引用
keytool -import -alias joe -file jcertfile.cer
這個(gè)命令將證書(shū)文件jcertfile.cer中別名為joe的證書(shū)導(dǎo)入系統(tǒng)的受信任證書(shū)列表中
通常該命令用以導(dǎo)入來(lái)自CA中心的證書(shū)(Importing a Certificate for the CA)
導(dǎo)入被CA中心授權(quán)的證書(shū)(Importing the Certificate Reply from the CA)
命令:
引用
keytool -import -trustcacerts -file VSMarkJ.cer
證書(shū)的導(dǎo)出(Exporting Certificates)
命令:
引用
keytool -export -alias jane -file janecertfile.cer
這個(gè)命令將別名為jane的證書(shū)導(dǎo)出到證書(shū)文件jcertfile.cer中
生成的證書(shū)可以交付客戶端用戶使用,用以進(jìn)行SSL通訊,或者伴隨電子簽名的jar包進(jìn)行發(fā)布者的身份認(rèn)證。
posted on 2008-06-28 16:53
鄧兵野 閱讀(513)
評(píng)論(0) 編輯 收藏 所屬分類(lèi):
jdk技術(shù)