keytool是一個密鑰和證書管理工具
1.keytool工具位置
keytool工具在 JDK 的安裝目錄的 bin 目錄下面
2.keytool工具命令展示
打開命令行進入 bin 目錄,然後輸入命令 keytool.exe,就能看見keytool工具支持哪些命令,如下圖所示:
注意下面的用法提示:使用 “keytool -command_name -help” 獲取 command_name 的用法
3.查看具體命令用法
這裏我們使用 -genkeypair 命令來創建密鑰庫,先來看看 genkeypair 命令的用法,如下圖所示:
4.新建密鑰庫
.\keytool.exe -genkeypair -alias CA -keyalg RSA -validity 30 -keystore D:\keytoolCert\.CAkeystore
4.1.參數說明
- -alias CA: alias表示別名的意思,這裏別名爲 CA,如果不寫的話,它的默認值爲 mykey
- -keyalg RSA: 密鑰算法名稱,這裏使用RSA算法
- -validity 30: 有效天數爲30天
- -keystore D:\keytoolCert.CAkeystore: 指定密鑰庫存放的位置。
命令輸入過後會讓我們輸入密碼、唯一判別名(dname)和密鑰口令
注意
- 密鑰庫的密碼至少必須6個字符,可以是純數字或者字母或者數字和字母的組合等等
- 名字與姓氏"應該是輸入域名,而不是我們的個人姓名,其他的可以不填
這條命令的完整含義是:使用 keytool.exe ,創建一個別名爲 CA,算法爲 RSA,有效天數爲30天的密鑰,並將它存放在 D:\keytoolCert\ 目錄下的一個名叫 .CAkeystore 的密鑰庫中,如果密鑰庫不存在則自動創建。
執行完上述命令後,在 D:\keytoolCert\ 目錄下生成了一個".CAkeystore"的文件,如下圖所示:
5.查看密鑰庫裏面的信息
命令如下:
.\keytool.exe -list -keystore D:\keytoolCert\.CAkeystore -v
結果如下:
5.1.查看密鑰庫信息其他命令
- 查看密鑰庫中指定密鑰的信息: keytool.exe -list -alias CA -keystore
“D:\keytoolCert.CAkeystore” -v
6.導出密鑰到證書文件
.\keytool -export -alias CA -file D:\keytoolCert\pendIssueCert_1.cer -keystore D:\keytoolCert\.CAkeystore
執行完上述命令後,在 D:\keytoolCert\ 目錄下生成了一個"pendIssueCert_1.cer"的證書文件,如下圖所示:
7.查看指定證書文件的信息:
keytool.exe -printcert -file D:\keytoolCert\.pendIssueCert_1.cer -v
8.導入證書
將證書文件 pendIssueCert_1.cer 導入到名爲 .pendIssuekeystore 的證書庫中
keytool -import -keystore D:\keytoolCert\.pendIssuekeystore -file D:\keytoolCert\pendIssueCert_1.cer
注意:
- D:\keytoolCert.pendIssuekeystore 密鑰庫不存在會自動創建
- 導入時沒有輸入 -alias 那麼它的別名就是 mykey ,如果有需要可以自己指定別名
9.刪除密鑰庫中的條目
刪除密鑰庫 .pendIssuekeystore 中別名爲 mykey 的證書條目
keytool -delete -keystore D:\keytoolCert\.pendIssuekeystore -alias mykey
刪除前先查看 有一個密鑰,刪除後再查看就沒有了,表示刪除成功。
修改證書條目的口令
將密鑰庫 .pendIssuekeystore 中別名爲 mykey 的證書條目的密碼修改爲 123456
keytool -keypasswd -alias mykey -keystore D:\keytoolCert.pendIssuekeystore
技 術 無 他, 唯 有 熟 爾。
知 其 然, 也 知 其 所 以 然。
踏 實 一 些, 不 要 着 急, 你 想 要 的 歲 月 都 會 給 你。