jdk中密鑰和證書管理工具keytool使用說明

keytool JAVA是個密鑰和證書管理工具。它使用戶能夠管理自己的公鑰/私鑰對及相關證書,用於(通過數字簽名)自我認證(用戶向別的用戶/服務認證自己)或數據完整性以及認證服務

-genkey      在用戶主目錄中創建一個默認文件".keystore",還會產生一個mykey的別名,mykey中包含用戶的公鑰、私鑰和證書 
-alias       產生別名
-keystore    指定密鑰庫的名稱(產生的各類信息將不在.keystore文件中
-keyalg      指定密鑰的算法    
-validity    指定創建的證書有效期多少天
-keysize     指定密鑰長度
-storepass   指定密鑰庫的密碼
-keypass     指定別名條目的密碼
-dname       指定證書擁有者信息 例如:  "CN=sagely,OU=atr,O=szu,L=sz,ST=gd,C=cn"
-list        顯示密鑰庫中的證書信息      keytool -list -v -keystore sage -storepass ....
-v           顯示密鑰庫中的證書詳細信息
-export      將別名指定的證書導出到文件  keytool -export -alias caroot -file caroot.crt
-file        參數指定導出到文件的文件名
-delete      刪除密鑰庫中某條目          keytool -delete -alias sage -keystore sage
-keypasswd   修改密鑰庫中指定條目口令    keytool -keypasswd -alias sage -keypass .... -new .... -storepass ... -keystore sage
-import      將已簽名數字證書導入密鑰庫  keytool -import -alias sage -keystore sagely -file sagely.crt 
             導入已簽名數字證書用keytool -list -v 以後可以明顯發現多了認證鏈長度,並且把整個CA鏈全部打印出來。

keytool JAVA是個密鑰和證書管理工具。它使用戶能夠管理自己的公鑰/私鑰對及相關證書,用於(通過數字簽名)自我認證(用戶向別的用戶/服務認證自己)或數據完整性以及認證服務。它還允許用戶儲存他們的通信對等者的公鑰(以證書形式)。通過keytool –help查看其用法,詳細信息可以參考http: //java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html

創建證書Java 中的 keytool.exe (位於 JDK/Bin 目錄下)可以用來創建數字證書,所有的數字證書是以一條一條(採用別名區別)的形式存入證書庫的中,證書庫中的一條證書包含該條證書的私鑰,公鑰和對應的數字證書的信息。證書庫中的一條證書可以導出數字證書文件,數字證書文件只包括主體信息和對應的公鑰。 
每一個證書庫是一個文件組成,它有訪問密碼,在首次創建時,它會自動生成證書庫,並要求指定訪問證書庫的密碼。 
在創建證書的的時候,需要填寫證書的一些信息和證書對應的私鑰密碼。這些信息包括 CN=xx,OU=xx,O=xx,L=xx,ST=xx,C=xx,它們的意思是: 
? CN(Common Name - 名字與姓氏):其實這個“名字與姓氏”應該是域名,比如說localhost或是blog.devep.net之類的。輸成了姓名,和真正運行的時候域名不符,會出問題。瀏覽器訪問時,彈出一個對話框,提示“安全證書上的名稱無效,或者與站點名稱不匹配”,用戶選擇繼續還是可以瀏覽網頁。但是用http client寫程序訪問的時候,會拋出類似於“javax.servlet.ServletException: HTTPS hostname wrong: should be ”的異常。 
? OU(Organization Unit - 組織單位名稱) 
? O(Organization - 組織名稱) 
? L(Locality - 城市或區域名稱) 
? ST(State - 州或省份名稱) 
? C(Country - 國家名稱) 
可以採用交互式讓工具提示輸入以上信息,也可以採用參數,如:-dname “CN=xx,OU=xx,O=xx,L=xx,ST=xx,C=xx”來自動創建。

創建一個證書 
指定證書庫爲 D:/keystore/test,創建別名爲 Tomcat 的一條證書,它指定用 RSA 算法生成,且指定密鑰長度爲 1024,證書有效期爲 1 年: 
keytool -genkey -alias Tomcat -keyalg RSA -keysize 1024 -keystore C:/keystore/test -validity 365 
顯示證書庫中的證書使用如下命令: keytool -list -keystore C:/keystore/test 將顯示 C:/keystore/test 證書庫的的所有證書列表

導出到證書文件 
使用命令:keytool -export -alias Tomcat -file C:/keystore/TC.cer -keystore C:/keystore/test 將把證書庫C:/keystore/test 中的別名爲 Tomcat 的證書導出到 TC.cer 證書文件中,它包含證書主體的信息及證書的公鑰,不包括私鑰,可以公開。 
導出的證書文件是以二進制編碼文件,無法用文本編輯器正確顯示,可以加上 -rfc參數以一種可打印的編者編碼輸出。 如: 
keytool -export -alias Tomcat -file C:/keystore/TC.cer -keystore C:/keystore/test –rfc

查看證書的信息 
通過命令: keytool -printcert -file D:/keystore/TC.cer 可以查看證書文件的信息。 也可以在 Windows 資源管理器中雙擊產生的證書文件直接查看。

刪除密鑰庫中的條目 
keytool -delete -alias Tomcat -keystore C:/keystore/test 
這條命令將 C:/keystore/test 庫中的 Tomcat 這一條證書刪除了。

修改證書條目口令 
keytool -keypasswd -alias Tomcat -keystore C:/keystore/test,可以以交互的方式修改 C:/keystore/test 證書庫中的條目爲 Tomcat 的證書。 
Keytool -keypasswd -alias Tomcat -keypass oldpasswd -new newpasswd -storepass storepasswd -keystore C:/keystore/test 這一行命令以非交互式的方式修改庫中別名爲 Tomcat 的證書的密碼爲新密碼 newpasswd,行中的 oldpasswd 是指該條證書的原密碼, storepasswd 是指證書庫的密碼。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章