jdk中密鑰和證書管理工具keytool常用命令詳解
-genkey 在用戶主目錄中創(chuàng)建一個(gè)默認(rèn)文件".keystore",還會(huì)產(chǎn)生一個(gè)mykey的別名,mykey中包含用戶的公鑰、私鑰和證書
-alias 產(chǎn)生別名
-keystore 指定密鑰庫(kù)的名稱(產(chǎn)生的各類信息將不在.keystore文件中
-keyalg 指定密鑰的算法
-validity 指定創(chuàng)建的證書有效期多少天
-keysize 指定密鑰長(zhǎng)度
-storepass 指定密鑰庫(kù)的密碼
-keypass 指定別名條目的密碼
-dname 指定證書擁有者信息 例如: "CN=sagely,OU=atr,O=szu,L=sz,ST=gd,C=cn"
-list 顯示密鑰庫(kù)中的證書信息 keytool -list -v -keystore sage -storepass ....
-v 顯示密鑰庫(kù)中的證書詳細(xì)信息
-export 將別名指定的證書導(dǎo)出到文件 keytool -export -alias caroot -file caroot.crt
-file 參數(shù)指定導(dǎo)出到文件的文件名
-delete 刪除密鑰庫(kù)中某條目 keytool -delete -alias sage -keystore sage
-keypasswd 修改密鑰庫(kù)中指定條目口令 keytool -keypasswd -alias sage -keypass .... -new .... -storepass ... -keystore sage
-import 將已簽名數(shù)字證書導(dǎo)入密鑰庫(kù) keytool -import -alias sage -keystore sagely -file sagely.crt
導(dǎo)入已簽名數(shù)字證書用keytool -list -v 以后可以明顯發(fā)現(xiàn)多了認(rèn)證鏈長(zhǎng)度,并且把整個(gè)CA鏈全部打印出來(lái)。
keytool JAVA是個(gè)密鑰和證書管理工具。它使用戶能夠管理自己的公鑰/私鑰對(duì)及相關(guān)證書,用于(通過(guò)數(shù)字簽名)自我認(rèn)證(用戶向別的用戶/服務(wù)認(rèn)證自己)或數(shù)據(jù)完整性以及認(rèn)證服務(wù)。它還允許用戶儲(chǔ)存他們的通信對(duì)等者的公鑰(以證書形式)。通過(guò)keytool –help查看其用法,詳細(xì)信息可以參考http: //java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html
創(chuàng)建證書Java 中的 keytool.exe (位于 JDK/Bin 目錄下)可以用來(lái)創(chuàng)建數(shù)字證書,所有的數(shù)字證書是以一條一條(采用別名區(qū)別)的形式存入證書庫(kù)的中,證書庫(kù)中的一條證書包含該條證書的私鑰,公鑰和對(duì)應(yīng)的數(shù)字證書的信息。證書庫(kù)中的一條證書可以導(dǎo)出數(shù)字證書文件,數(shù)字證書文件只包括主體信息和對(duì)應(yīng)的公鑰。
每一個(gè)證書庫(kù)是一個(gè)文件組成,它有訪問(wèn)密碼,在首次創(chuàng)建時(shí),它會(huì)自動(dòng)生成證書庫(kù),并要求指定訪問(wèn)證書庫(kù)的密碼。
在創(chuàng)建證書的的時(shí)候,需要填寫證書的一些信息和證書對(duì)應(yīng)的私鑰密碼。這些信息包括 CN=xx,OU=xx,O=xx,L=xx,ST=xx,C=xx,它們的意思是:
? CN(Common Name - 名字與姓氏):其實(shí)這個(gè)“名字與姓氏”應(yīng)該是域名,比如說(shuō)localhost或是blog.devep.net之類的。輸成了姓名,和真正運(yùn)行的時(shí)候域名不符,會(huì)出問(wèn)題。瀏覽器訪問(wèn)時(shí),彈出一個(gè)對(duì)話框,提示“安全證書上的名稱無(wú)效,或者與站點(diǎn)名稱不匹配”,用戶選擇繼續(xù)還是可以瀏覽網(wǎng)頁(yè)。但是用http client寫程序訪問(wèn)的時(shí)候,會(huì)拋出類似于“javax.servlet.ServletException: HTTPS hostname wrong: should be ”的異常。
? OU(Organization Unit - 組織單位名稱)
? O(Organization - 組織名稱)
? L(Locality - 城市或區(qū)域名稱)
? ST(State - 州或省份名稱)
? C(Country - 國(guó)家名稱)
可以采用交互式讓工具提示輸入以上信息,也可以采用參數(shù),如:-dname “CN=xx,OU=xx,O=xx,L=xx,ST=xx,C=xx”來(lái)自動(dòng)創(chuàng)建。
創(chuàng)建一個(gè)證書
指定證書庫(kù)為 D:/keystore/test,創(chuàng)建別名為 Tomcat 的一條證書,它指定用 RSA 算法生成,且指定密鑰長(zhǎng)度為 1024,證書有效期為 1 年:
keytool -genkey -alias Tomcat -keyalg RSA -keysize 1024 -keystore C:/keystore/test -validity 365
顯示證書庫(kù)中的證書使用如下命令: keytool -list -keystore C:/keystore/test 將顯示 C:/keystore/test 證書庫(kù)的的所有證書列表
導(dǎo)出到證書文件
使用命令:keytool -export -alias Tomcat -file C:/keystore/TC.cer -keystore C:/keystore/test 將把證書庫(kù)C:/keystore/test 中的別名為 Tomcat 的證書導(dǎo)出到 TC.cer 證書文件中,它包含證書主體的信息及證書的公鑰,不包括私鑰,可以公開。
導(dǎo)出的證書文件是以二進(jìn)制編碼文件,無(wú)法用文本編輯器正確顯示,可以加上 -rfc參數(shù)以一種可打印的編者編碼輸出。 如:
keytool -export -alias Tomcat -file C:/keystore/TC.cer -keystore C:/keystore/test –rfc
查看證書的信息
通過(guò)命令: keytool -printcert -file D:/keystore/TC.cer 可以查看證書文件的信息。 也可以在 Windows 資源管理器中雙擊產(chǎn)生的證書文件直接查看。
刪除密鑰庫(kù)中的條目
keytool -delete -alias Tomcat -keystore C:/keystore/test
這條命令將 C:/keystore/test 庫(kù)中的 Tomcat 這一條證書刪除了。
修改證書條目口令
keytool -keypasswd -alias Tomcat -keystore C:/keystore/test,可以以交互的方式修改 C:/keystore/test 證書庫(kù)中的條目為 Tomcat 的證書。
Keytool -keypasswd -alias Tomcat -keypass oldpasswd -new newpasswd -storepass storepasswd -keystore C:/keystore/test 這一行命令以非交互式的方式修改庫(kù)中別名為 Tomcat 的證書的密碼為新密碼 newpasswd,行中的 oldpasswd 是指該條證書的原密碼, storepasswd 是指證書庫(kù)的密碼。
相關(guān)文章
Java計(jì)算兩個(gè)漢字相似度的實(shí)現(xiàn)方法
有時(shí)候我們希望計(jì)算兩個(gè)漢字的相似度,比如文本的 OCR 等場(chǎng)景,用于識(shí)別糾正,本文給大家詳細(xì)介紹了Java計(jì)算兩個(gè)漢字相似度的實(shí)現(xiàn)方法,文中有詳細(xì)的實(shí)現(xiàn)代碼,需要的朋友可以參考下2023-11-11面試題:java中為什么foreach中不允許對(duì)元素進(jìn)行add和remove
讀者遇到了一個(gè)比較經(jīng)典的面試題,也就是標(biāo)題上說(shuō)的,為什么 foreach 中不允許對(duì)元素進(jìn)行 add 和 remove,本文就詳細(xì)的介紹一下,感興趣的可以了解一下2021-10-10springboot整合websocket實(shí)現(xiàn)群聊思路代碼詳解
通過(guò)springboot引入websocket,實(shí)現(xiàn)群聊,通過(guò)在線websocket測(cè)試進(jìn)行展示。本文重點(diǎn)給大家介紹springboot整合websocket實(shí)現(xiàn)群聊功能,代碼超級(jí)簡(jiǎn)單,感興趣的朋友跟隨小編一起學(xué)習(xí)吧2021-05-05