java 開發銀行支付、對帳時證書相關的操做總結

證書的相關操做主要是在CMD窗口使用keytool工具java

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 需導入的證書

內容概覽:工具

keytool的幾個經常使用的命令。測試

1.建立證書加密

2.查看證書庫spa

3.導出證書文件操作系統

4.導入證書的信息code

5.查看證書信息文檔

6.刪除密鑰庫中的條目域名

7.修改證書條目的口令

1.建立證書

keytool -genkeypair -alias "test1" -keyalg "RSA" -keystore "test.keystore"

說明:

密鑰庫密碼爲testtest

證書條目密碼爲testtest1,若別名爲test2則密碼爲testtest2

這樣爲個不亂

功能:

建立一個別名爲test1的證書條目,該條目存放在名爲test.keystore的密鑰庫中,若test.keystore密鑰庫不存在則建立。

參數說明:

-genkeypair:生成一對非對稱密鑰;

-alias:指定密鑰對的別名,該別名是公開的;
-keyalg:指定加密算法,本例中的採用通用的RAS加密算法;

-keystore:密鑰庫的路徑及名稱,不指定的話,默認在操做系統的用戶目錄下生成一個".keystore"的文件

注意:

1.「名字與姓氏」應該是域名,若輸成了姓名,和真正運行的時候域名不符,會出問題;

2.再次輸入密碼,第一次輸入的是密鑰庫(keystore)的密碼,第二次輸入的是證書條目的密碼

3.這裏所說的證書庫和密鑰庫是等同的(我的觀點)

爲了測試須要,這裏再建立兩個別名爲test2和test3的證書條目在test.keystore密鑰庫中,代碼以下:

keytool -genkeypair -alias "test2" -keyalg "RSA" -keystore "test.keystore"
keytool -genkeypair -alias "test3" -keyalg "RSA" -keystore "test.keystore"
2.查看證書庫:

keytool -list -keystore cacerts -storepass changeit

查看名爲test.keystore的證書庫中的證書條目

3.導出到證書文件

keytool -export -alias test1 -file test.crt -keystore cacerts

功能:

將名爲test.keystore的證書庫中別名爲test1的證書條目導出到證書文件test.crt中

4.導入證書的信息:

keytool -import -keystore C:\bea\jdk142_08\jre\lib\security\cacerts -storepass changeit -keypass changeit -alias bocommca -file root.cer
keytool -import -keystore cacerts -storepass changeit -keypass changeit -alias bocommca -file root.cer
上面一句是指定證書的路徑,下一句是要先到目錄下面

5.查看證書信息

keytool -printcert -file "test.crt"

功能:

查看證書文件test.crt的信息

6.刪除密鑰庫中的條目
刪除前查看密鑰庫test.keysote中的證書條目
keytool -list -keystore test.keystore
刪除密鑰庫test.keystore中別名爲test2的證書條目
keytool -delete -keystore test.keystore -alias test2
刪除後查看密鑰庫test.keystore中的證書條目

7.修改證書條目的口令

交互的方式

keytool -keypasswd -alias test1 -keystore test.keystore

功能:

將密鑰庫test.keystore中別名爲test1的證書條目的密碼修改成testtesttest1

非交互方式

keytool -keypasswd -alias test1 -keypass testtesttest1 -new testtest1 -storepass testtest -keystore test.keystore

功能:

將密鑰庫test.keystore中別名爲test1的證書條目的密碼修改成testtest1

相關文章
相關標籤/搜索