jdk中密鑰和證書管理工具keytool常用命令詳解
-genkey 在用戶主目錄中創(chuàng)建一個默認文件".keystore",還會產(chǎn)生一個mykey的別名,mykey中包含用戶的公鑰、私鑰和證書
-alias 產(chǎn)生別名
-keystore 指定密鑰庫的名稱(產(chǎn)生的各類信息將不在.keystore文件中
-keyalg 指定密鑰的算法
-validity 指定創(chuàng)建的證書有效期多少天
-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 參數(shù)指定導出到文件的文件名
-delete 刪除密鑰庫中某條目 keytool -delete -alias sage -keystore sage
-keypasswd 修改密鑰庫中指定條目口令 keytool -keypasswd -alias sage -keypass .... -new .... -storepass ... -keystore sage
-import 將已簽名數(shù)字證書導入密鑰庫 keytool -import -alias sage -keystore sagely -file sagely.crt
導入已簽名數(shù)字證書用keytool -list -v 以后可以明顯發(fā)現(xiàn)多了認證鏈長度,并且把整個CA鏈全部打印出來。
keytool JAVA是個密鑰和證書管理工具。它使用戶能夠管理自己的公鑰/私鑰對及相關證書,用于(通過數(shù)字簽名)自我認證(用戶向別的用戶/服務認證自己)或數(shù)據(jù)完整性以及認證服務。它還允許用戶儲存他們的通信對等者的公鑰(以證書形式)。通過keytool –help查看其用法,詳細信息可以參考http: //java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html
創(chuàng)建證書Java 中的 keytool.exe (位于 JDK/Bin 目錄下)可以用來創(chuàng)建數(shù)字證書,所有的數(shù)字證書是以一條一條(采用別名區(qū)別)的形式存入證書庫的中,證書庫中的一條證書包含該條證書的私鑰,公鑰和對應的數(shù)字證書的信息。證書庫中的一條證書可以導出數(shù)字證書文件,數(shù)字證書文件只包括主體信息和對應的公鑰。
每一個證書庫是一個文件組成,它有訪問密碼,在首次創(chuàng)建時,它會自動生成證書庫,并要求指定訪問證書庫的密碼。
在創(chuàng)建證書的的時候,需要填寫證書的一些信息和證書對應的私鑰密碼。這些信息包括 CN=xx,OU=xx,O=xx,L=xx,ST=xx,C=xx,它們的意思是:
? CN(Common Name - 名字與姓氏):其實這個“名字與姓氏”應該是域名,比如說localhost或是blog.devep.net之類的。輸成了姓名,和真正運行的時候域名不符,會出問題。瀏覽器訪問時,彈出一個對話框,提示“安全證書上的名稱無效,或者與站點名稱不匹配”,用戶選擇繼續(xù)還是可以瀏覽網(wǎng)頁。但是用http client寫程序訪問的時候,會拋出類似于“javax.servlet.ServletException: HTTPS hostname wrong: should be ”的異常。
? OU(Organization Unit - 組織單位名稱)
? O(Organization - 組織名稱)
? L(Locality - 城市或區(qū)域名稱)
? ST(State - 州或省份名稱)
? C(Country - 國家名稱)
可以采用交互式讓工具提示輸入以上信息,也可以采用參數(shù),如:-dname “CN=xx,OU=xx,O=xx,L=xx,ST=xx,C=xx”來自動創(chuàng)建。
創(chuàng)建一個證書
指定證書庫為 D:/keystore/test,創(chuàng)建別名為 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參數(shù)以一種可打印的編者編碼輸出。 如:
keytool -export -alias Tomcat -file C:/keystore/TC.cer -keystore C:/keystore/test –rfc
查看證書的信息
通過命令: keytool -printcert -file D:/keystore/TC.cer 可以查看證書文件的信息。 也可以在 Windows 資源管理器中雙擊產(chǎn)生的證書文件直接查看。
刪除密鑰庫中的條目
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 是指證書庫的密碼。
相關文章
SpringBoot配置文件bootstrap和application區(qū)別及說明
這篇文章主要介紹了SpringBoot配置文件bootstrap和application區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06
基于Jenkins搭建.NET FrameWork持續(xù)集成環(huán)境
這篇文章主要介紹了基于Jenkins搭建.NET FrameWork持續(xù)集成環(huán)境,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-08-08
Mybatis-plus解決兼容oracle批量插入的示例詳解
Mybatis-Plus 是一個 MyBatis 的增強工具,提供無侵入、損耗小的 CRUD 操作,本文給大家介紹了Mybatis-plus解決兼容oracle批量插入,文中通過大家介紹的非常詳細,需要的朋友可以參考下2024-11-11
使用Spring Boot輕松實現(xiàn)流式AI輸出的步驟
本文介紹了如何使用Spring Boot和WebFlux實現(xiàn)流式AI輸出,通過非阻塞I/O、反應式編程和函數(shù)式路由等技術,優(yōu)化了AI應用的響應速度,提升了用戶體驗,感興趣的朋友一起看看吧2025-02-02
SpringBoot項目中使用OkHttp獲取IP地址的示例代碼
OkHttp?是一個由?Square?開發(fā)的高效、現(xiàn)代的?HTTP?客戶端庫,用于?Android?和?Java?應用程序,它支持?HTTP/2?和?SPDY?等現(xiàn)代網(wǎng)絡協(xié)議,并提供了多種功能和優(yōu)化,本文給大家介紹了SpringBoot項目中如何獲取IP地址,需要的朋友可以參考下2024-08-08

