1. 程式人生 > >java keytool證書工具使用小結(轉)

java keytool證書工具使用小結(轉)

ret text mar top 查看 ted ava mil 單位

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 需導入的證書
目錄說明:
  1. 生成證書
  2. 查看證書
  3. 證書導出
  4. 客戶端導入證書
  5. 附錄資料
一、生成證書 按win鍵+R,彈出運行窗口,輸入 cmd 回車,打開命令行窗戶,輸入如下命令:
keytool -genkey -alias michaelkey -keyalg RSA -keysize 1024 -keypass michaelpwd -validity 365 -keystore g:\sso\michael.keystore -storepass michaelpwd2
截圖如下:
技術分享 二、查看證書

缺省情況下,-list 命令打印證書的 MD5 指紋。而如果指定了 -v 選項,將以可讀格式打印證書,如果指定了 -rfc 選項,將以可打印的編碼格式輸出證書。

-v 命令如下:
keytool -list -v -keystore g:\sso\michael.keystore -storepass michaelpwd2
回車看到的信息如下:
技術分享 -rfc 命令如下: keytool -list -rfc -keystore g:\sso\michael.keystore -storepass michaelpwd2 回車看到的信息如下: 技術分享

三、證書的導出和查看: 導出證書命令
keytool -export -alias michaelkey -keystore g:\sso\michael.keystore -fileg:\sso\michael.crt -storepass michaelpwd2
回車如下: 技術分享

查看導出的證書信息
keytool -printcert -file g:\sso\michael.crt
回車看到信息如下: 技術分享

四、客戶端導入證書:

keytool -import -keystore %JAVA_HOME%\jre\lib\security\cacerts -fileg:\sso\ssodemo.crt -alias ssodemo

五、官方有關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

java keytool證書工具使用小結(轉)