keytool 是個密鑰和證書管理工具。它使用戶可以管理本身的公鑰/私鑰對及相關證書,用於(經過數字簽名)自我認證(用戶向別的用戶/服務認證本身)或數據完整性以及認證服務。在JDK 1.4之後的版本中都包含了這一工具,它的位置爲%JAVA_HOME%\bin\keytool.exe,以下圖所示:java
建立證書主要是使用" -genkeypair",該命令的可用參數以下:算法
Cmd代碼工具
keytool -genkeypair -alias "test1" -keyalg "RSA" -keystore "test.keystore"
功能:加密
建立一個別名爲test1的證書,該證書存放在名爲test.keystore的密鑰庫中,若test.keystore密鑰庫不存在則建立。spa
參數說明:操作系統
-genkeypair:生成一對非對稱密鑰;3d
-alias:指定密鑰對的別名,該別名是公開的;
-keyalg:指定加密算法,本例中的採用通用的RAS加密算法;blog
-keystore:密鑰庫的路徑及名稱,不指定的話,默認在操做系統的用戶目錄下生成一個".keystore"的文件圖片
注意:域名
1.密鑰庫的密碼至少必須6個字符,能夠是純數字或者字母或者數字和字母的組合等等
2."名字與姓氏"應該是輸入域名,而不是咱們的我的姓名,其餘的能夠不填
在上述圖片遇到keytool 錯誤: java.io.FileNotFoundException: test.keystore (拒絕訪問。)這是由於權限問題:你的jdk目錄在c盤,當前用戶無寫入權限。
因此要麼更改jdk的保存目錄,要麼更改權限。
我將jdk目錄保存到了D盤
行完上述命令後,在操做系統的用戶目錄下生成了一個"test.keystore"的文件,以下圖所示:
範例:查看test.keystore這個密鑰庫裏面的全部證書
Cmd代碼
keytool -list -keystore test.keystore
範例:將名爲test.keystore的證書庫中別名爲test1的證書條目導出到證書文件test.crt中
Cmd代碼
keytool -export -alias test1 -file test.crt -keystore test.keystore
運行結果:在操做系統的用戶目錄下生成了一個"test.crt"的文件,以下圖所示:
範例:將證書文件test.crt導入到名爲test_cacerts的證書庫中
Cmd代碼:
keytool -import -keystore test_cacerts -file test.crt
範例:查看證書文件test.crt的信息
Cmd代碼:
keytool -printcert -file "test.crt"
範例:刪除密鑰庫test.keystore中別名爲test1的證書條目
Cmd代碼:
keytool -delete -keystore test.keystore -alias test1
範例:將密鑰庫test.keystore中別名爲test2的證書條目的密碼修改成xdp123456
Cmd代碼:
keytool -keypasswd -alias test2 -keystore test.keystore