http://www.micmiu.com/lang/java/keytool-start-guide/
java keytool證書工具使用小結
Keytool 是一個Java數據證書的管理工具 ,Keytool將密鑰(key)和證書(certificates)存在一個稱為keystore的文件中在keystore里,包含兩種數據:密鑰實體(Key entity)-密鑰(secret key)或者是私鑰和配對公鑰(采用非對稱加密)可信任的證書實體(trusted certificate entries)-只包含公鑰.
JDK中keytool常用參數說明(不同版本有差異,詳細可參見【附錄】中的官方文檔鏈接):
- -genkey 在用戶主目錄中創建一個默認文件”.keystore”,還會產生一個mykey的別名,mykey中包含用戶的公鑰、私鑰和證書(在沒有指定生成位置的情況下,keystore會存在用戶系統默認目錄)
- -alias 產生別名 每個keystore都關聯這一個獨一無二的alias,這個alias通常不區分大小寫
- -keystore 指定密鑰庫的名稱(產生的各類信息將不在.keystore文件中)
- -keyalg 指定密鑰的算法 (如 RSA DSA,默認值為:DSA)
- -validity 指定創建的證書有效期多少天(默認 90)
- -keysize 指定密鑰長度 (默認 1024)
- -storepass 指定密鑰庫的密碼(獲取keystore信息所需的密碼)
- -keypass 指定別名條目的密碼(私鑰的密碼)
- -dname 指定證書發行者信息 其中: “CN=名字與姓氏,OU=組織單位名稱,O=組織名稱,L=城市或區域名 稱,ST=州或省份名稱,C=單位的兩字母國家代碼”
- -list 顯示密鑰庫中的證書信息 keytool -list -v -keystore 指定keystore -storepass 密碼
- -v 顯示密鑰庫中的證書詳細信息
- -export 將別名指定的證書導出到文件 keytool -export -alias 需要導出的別名 -keystore 指定keystore -file 指定導出的證書位置及證書名稱 -storepass 密碼
- -file 參數指定導出到文件的文件名
- -delete 刪除密鑰庫中某條目 keytool -delete -alias 指定需刪除的別 -keystore 指定keystore – storepass 密碼
- -printcert 查看導出的證書信息 keytool -printcert -file g:\sso\michael.crt
- -keypasswd 修改密鑰庫中指定條目口令 keytool -keypasswd -alias 需修改的別名 -keypass 舊密碼 -new 新密碼 -storepass keystore密碼 -keystore sage
- -storepasswd 修改keystore口令 keytool -storepasswd -keystore g:\sso\michael.keystore(需修改口令的keystore) -storepass pwdold(原始密碼) -new pwdnew(新密碼)
- -import 將已簽名數字證書導入密鑰庫 keytool -import -alias 指定導入條目的別名 -keystore 指定keystore -file 需導入的證書
目錄說明:
- 生成證書
- 查看證書
- 證書導出
- 附錄資料
一、生成證書
按win鍵+R,彈出運行窗口,輸入 cmd 回車,打開命令行窗戶,輸入如下命令:
截圖如下:
二、查看證書
缺省情況下,-list 命令打印證書的 MD5 指紋。而如果指定了 -v 選項,將以可讀格式打印證書,如果指定了 -rfc 選項,將以可打印的編碼格式輸出證書。
-v 命令如下:
回車看到的信息如下:
-rfc 命令如下:
回車看到的信息如下:
三、證書的導出和查看:
導出證書命令:
回車如下:
查看導出的證書信息:
回車看到信息如下:
四:附錄
官方有關keytool命令的介紹文檔:
- jdk1.4.2 :http://docs.oracle.com/javase/1.4.2/docs/tooldocs/windows/keytool.html
- jdk1.6 :http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html
- jdk1.7 :http://docs.oracle.com/javase/7/docs/technotes/tools/windows/keytool.html