一、keytool 簡介
keytool 是java用於管理密鑰和證書的工具,它使用戶能夠管理自己的公鑰/私鑰對及相關證書,用於(通過數字簽名)自我認證(用戶向別的用戶/服務認證自己)或數據完整性以及認證服務。在JDK 1.4以后的版本中都包含了這一工具,它的位置為%JAVA_HOME%\bin\keytool.exe,如下圖所示:
其功能包括:
- 創建並管理密鑰
- 創建並管理證書
- 作為CA 為證書授權
- 導入導出證書
二、keytool的用法
三、生成證書
生成證書主要是使用" -genkey",該命令的可用參數如下:
示例:生成一個名稱為tomcat的證書(cas服務https環境證書生成示例)
keytool -genkey -alias tomcat -keyalg RSA -keystore D:/cas.keystore
功能說明:
生成一個別名為tomcat的證書,該證書存放在名為cas.keystore的密鑰庫中,若cas.keystore密鑰庫不存在則創建。
參數說明:
-genkey:生成一對非對稱密鑰;
-alias:指定密鑰對的別名,該別名是公開的;
-keyalg:指定加密算法,本例中的采用通用的RAS加密算法;
-keystore:密鑰庫的路徑及名稱,不指定的話,默認在操作系統的用戶目錄下生成一個".keystore"的文件。
注意:
1.密鑰庫的密碼至少必須6個字符,可以是純數字或者字母或者數字和字母的組合等等
2."名字與姓氏"應該是輸入域名,而不是我們的個人姓名,其他的可以不填
執行完上述命令后,在D盤下生成了一個"cas.keystore"的文件,如下圖所示:
四、導出證書
導出證書主要是使用" -export",該命令的可用參數如下:
示例:將名為cas.keystore的證書庫中別名為tomcat的證書條目導出到證書文件cas.crt中
keytool -export -trustcacerts -alias tomcat -file D:/cas.crt -keystore D:/cas.keystore
執行完上述命令后,在D盤下生成了一個"cas.crt"的文件,如下圖所示:
五、導入證書
導入證書主要是使用" -import",該命令的可用參數如下:
示例1:將證書文件cas.crt導入到名為test_cacerts的證書庫中
keytool -import -file D:/cas.crt -keystore D:/test_cacerts
示例2:將證書文件test.crt導入到名為cacerts的證書庫中(這里將會演示將證書導入到jdk的證書庫中)
keytool -import -trustcacerts -alias tomcat -file D:/cas.crt -keystore %JAVA_HOME%/jre/lib/security/cacerts
注:次例中jdk證書庫的默認密碼為:changeit
六、查看密鑰庫里面的證書
keytool -list -keystore D:/cas.keystore
七、查看證書信息
keytool -printcert -file D:/cas.crt
八、刪除密鑰庫中的條目
示例:刪除密鑰庫cas.keystore中別名為tomcat的證書條目
keytool -delete -keystore D:/cas.keystore -alias tomcat
九、修改證書條目的口令
示例:將密鑰庫cas.keystore中別名為test的證書條目的密碼修改為666666(別名為test的證書條目必須存在)
keytool -keypasswd -alias test -keystore D:/cas.keystore