【keytool】如何使用使用Java密鑰庫工作?

一茎辐、keytool 密鑰和證書管理工具

Keytool將密鑰(key)和證書(certificates)存在一個稱為keystore的文件中如绸。

在keystore里藏鹊,包含兩種數(shù)據(jù):?密鑰實體(Key entity)——密鑰(secret key)又或者是私鑰和配對公鑰(采用非對稱加密)

可信任的證書實體(trusted certificate entries)——只包含公鑰

Alias(別名)轨帜,每個keystore都關(guān)聯(lián)這一個獨一無二的alias皮假,這個alias通常不區(qū)分大小寫

它使用戶能夠管理自己的

公鑰/私鑰對及相關(guān)證書鞋拟,用于(通過數(shù)字簽名)自我認(rèn)證(用戶向別的用戶/服務(wù)認(rèn)證自己)或數(shù)據(jù)完整性以及認(rèn)證服務(wù)。它還允許用戶儲存他們的通信對等者的公鑰(以證書形式)惹资。

我的理解就是:

當(dāng)外面系統(tǒng)要訪問我們的系統(tǒng)的時候贺纲,就需要給出雙方彼此信任的證書,證書里面就包含了外部系統(tǒng)的個人信息,例如:公司名稱褪测、公司地址猴誊、密碼等。

Keytool把鑰匙和證書儲存到一個keystore侮措,默任實現(xiàn)keystore的是一個文件稠肘,它用一個密碼保護鑰匙.。只有這些信息對應(yīng)上了萝毛,我們的系統(tǒng)才可放行项阴,讓外部系統(tǒng)進入到我們的系統(tǒng)內(nèi),并進行相關(guān)的業(yè)務(wù)操作笆包。

數(shù)字證書

所有的數(shù)字證書是以一條一條(采用別名區(qū)別)的形式存入證書庫的中环揽,證書庫中的一條證書包含該條證書的私鑰,公鑰和對應(yīng)的數(shù)字證書的信息庵佣。

證書庫中的一條證書可以導(dǎo)出數(shù)字證書文件歉胶,數(shù)字證書文件只包括主體信息和對應(yīng)的公鑰。


證書概念

一個證書是一個實體的數(shù)字簽名,還包含這個實體的公共鑰匙值.???

1) 公共鑰匙?:是一個詳細(xì)的實體的數(shù)字關(guān)聯(lián),并有意讓所有想同這個實體發(fā)生信任關(guān)系的其他實體知道.公共鑰匙用來檢驗簽名;????????

2) 數(shù)字簽名:是實體信息用實體的私有鑰匙簽名(加密)后的數(shù)據(jù).這條數(shù)據(jù)可以用這個實體的公共鑰匙來檢驗簽名(解密)出實體信息以鑒別實體的身份;??????????????

3) 簽名:用實體私有鑰匙加密某些消息巴粪,從而得到加密數(shù)據(jù);??????

4) 私有鑰匙:是一些數(shù)字,私有和公共鑰匙存在所有用公共鑰匙加密的系統(tǒng)的鑰匙對中通今。

公共鑰匙用來加密數(shù)據(jù),私有鑰匙用來計算簽名.

公鑰加密的消息只能用私鑰解密肛根,私鑰簽名的消息只能用公鑰檢驗簽名辫塌。????????

5) 實體:一個實體可以是一個人,一個組織,一個程序,一臺計算機,一個商業(yè),一個銀行,或其他你想信任的東西.?



keytool是一個工具可以用來創(chuàng)建包含公鑰和密鑰的的keystore文件,并且利用keystore文件來創(chuàng)建只包含公鑰的truststore文件派哲。

二臼氨、生成一個keystone

# keytool? \

-genkeypair \

-keystore?keystone.jks? \

-alias? certificatekey??\

-keypass?123456?\

-storepass?123456?\

-keyalg RSA \

-keysize 2048 \

-validity 5000 \

-dname "CN=*.example.com,OU=Test,O=Test,L=ShenZhen,ST=GuangDong,C=CN" \

-ext "SAN=DNS:www.example.com,IP:192.168.1.105" ?\

-ext "BC=ca:true"

查看keystone

# keytool -list -v -keystore keystone.jks -storepass "123456"


默認(rèn),-list?命令打印證書的?MD5?指紋芭届。

如果指定了?-v?選項储矩,將以可讀格式打印證書感耙,如果指定了?-rfc?選項,將以可打印的編碼格式輸出證書持隧。

# keytool -list ?-rfc -keystore ?keystone.jks ?-storepass "123456"


證書的導(dǎo)出

# ?keytool ?-export -alias certificatekey ?-keystore keystone.jks ?-file ?selfsignedcert.crt? --storepass "123456"


查看導(dǎo)出的證書信息?

# keytool -printcert -file selfsignedcert.crt


# keytool -printcert -file selfsignedcert.crt -rfc

三即硼、證書導(dǎo)入

生成一個用于導(dǎo)入的證書

# keytool-genkeypair \

-alias? nginx \

-keypass 123456 \

-keyalg RSA \

-keysize 1024 \

-validity 365 \

-keystore ?nginx.jks? \

-storepass 123456 \

-dname "CN=Test,OU=Test, O=Test, L=Test,ST=Test,C=CN"


導(dǎo)出 別名為nginx的nginx.jks條目

#?keytool? -keystore nginx.jks? ?-storepass "123456" -export -alias nginx? -file? nginx.crt

將nginx.crt 加入到keestone.jks

#?keytool? -import -alias?nginx ?\

-file nginx.crt ?\

-keypass 123456 \

-keystore keystone.jks ?\

-storepass "123456"


# ?keytool -list ?-v -keystore keystone.jks ?-storepass ?"123456"

密鑰庫類型: JKS

密鑰庫提供方: SUN

您的密鑰庫包含 2 個條目

三、證書條目的刪除和密碼修改

證書條目的刪除

# ?keytool?-delete? -alias? ?certificatekey ?-keystore keystone.jks ? -storepass 123456

證書條目口令的修改

# keytool?-keypasswd ?-alias? nginx? \

?-keypass?123456(原始密碼)? \

-new?654321(別名的新密碼)? \

-keystore ?keystone.jks \

?-storepass 123456

keystore口令的修改

# keytool??-storepasswd? -keystore?keystone.jks(需修改口令的keystore)? -storepass?123456(原始密碼)? -new?1008610(新密碼)

修改keystore中條目的信息

# keytool?-selfcert? ?-alias? nginx?\

-keypass 123456?\

-keystore nginx.jks? \

-storepass 123456 \

-dname "CN=*.example.com,OU=test,O=test,L=ShenZhen,ST=GuangDong,C=CN"

只能修改原來的 nginx.jks中的 nginx條目屡拨,無法修改導(dǎo)入到 keystone.jks中的nginx條目只酥!


以上就是keytool的相關(guān)概念和基本用法了。現(xiàn)在我們應(yīng)該明白了證書里面是包含什么東西了洁仗,無非就是對商家的信息進行加密层皱,然后憑借著加密過的證書來互相之間的識別性锭。

在我們的系統(tǒng)中赠潦,我們一般會把證書放到接口所在的服務(wù)器,因為我們的系統(tǒng)是分布式架構(gòu)草冈,所以可能對于不同的業(yè)務(wù)會部署在不同的服務(wù)器上她奥。

正常情況下,證書的認(rèn)證就是需要接口的相關(guān)方法來識別的怎棱,所以我們就是將證書存放在了與接口所部署的服務(wù)器上哩俭,這樣,只要有第三方訪問我們的系統(tǒng)拳恋,我們就可以先驗證他們的證書凡资,只有證書正確了我們才可放行,這也是為了安全而考慮的谬运。

四隙赁、參考

Generating a Java keystore and key pair using the keytool command

https://www.ibm.com/support/knowledgecenter/en/SSFUEU_6.2.0/com.ibm.swg.ba.cognos.administrators_guide.6.2.0.doc/t_shi_generate_a_keystore_and_key_pair.html

?How to use keytool and openssl

https://www.zybuluo.com/torresdyl/note/520486

Java keytool的要領(lǐng):使用Java密鑰庫工作

https://www.howtoing.com/java-keytool-essentials-working-with-java-keystores

Java Keytool Essentials: Working with Java Keystores

https://www.digitalocean.com/community/tutorials/java-keytool-essentials-working-with-java-keystores

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市梆暖,隨后出現(xiàn)的幾起案子伞访,更是在濱河造成了極大的恐慌,老刑警劉巖轰驳,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件厚掷,死亡現(xiàn)場離奇詭異,居然都是意外死亡级解,警方通過查閱死者的電腦和手機冒黑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來勤哗,“玉大人薛闪,你說我怎么就攤上這事“陈” “怎么了豁延?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵昙篙,是天一觀的道長。 經(jīng)常有香客問我诱咏,道長苔可,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任袋狞,我火速辦了婚禮焚辅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘苟鸯。我一直安慰自己同蜻,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布早处。 她就那樣靜靜地躺著湾蔓,像睡著了一般。 火紅的嫁衣襯著肌膚如雪砌梆。 梳的紋絲不亂的頭發(fā)上默责,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機與錄音咸包,去河邊找鬼桃序。 笑死,一個胖子當(dāng)著我的面吹牛烂瘫,可吹牛的內(nèi)容都是我干的媒熊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼坟比,長吁一口氣:“原來是場噩夢啊……” “哼芦鳍!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起温算,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤怜校,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后注竿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茄茁,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年巩割,在試婚紗的時候發(fā)現(xiàn)自己被綠了裙顽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡宣谈,死狀恐怖愈犹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤漩怎,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布勋颖,位于F島的核電站,受9級特大地震影響勋锤,放射性物質(zhì)發(fā)生泄漏饭玲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一茄厘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧谈宛,春花似錦、人聲如沸吆录。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽葛假。三九已至滋恬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間恢氯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工鼓寺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留勋拟,地道東北人。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓妈候,卻偏偏與公主長得像敢靡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子苦银,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容