使用 JDK自帶工具 keytool生成數字證書

生成密鑰文件 test.keystore

  • ./keytool -genkeypair -v -alias test -dname “CN=test,OU=Wenyao,O=RnD,L=Yangpu,ST=Shanghai,C=China” -keyalg RSA -keysize 2048 -keypass 123456 -keystore d:/test.keystore -storepass 123456 -validity 99999 -storetype JCEKS

> 正在爲以下對象生成 2,048 位RSA密鑰對和自簽名證書 (SHA256withRSA) (有效期爲 99,999 天): CN=test, OU=Wenyao, O=R&D, L=Yangpu, ST=Shanghai, C=China
> [正在存儲d:/test.keystore]

從文件 test.keystore導出證書 >> test.crt

  • ./keytool -exportcert -alias test -file D:/test.cer -keystore d:/test.keystore -storepass 123456 -rfc -storetype JCEKS

> 存儲在文件 < D:/test.cer> 中的證書

查看 test.keystore密鑰庫中的證書信息

  • ./keytool -list -keystore d:/test.keystore -storepass 123456 -storetype JCEKS

> 密鑰庫類型: JCEKS
> 密鑰庫提供方: SunJCE

> 您的密鑰庫包含 1 個條目

> test, 2019-11-3, PrivateKeyEntry,
> 證書指紋 (SHA1): B9:A4:EB:86:8D:1F:32:BF:D5:A0:4B:BA:9D:45:45:93:FA:B6:12:93

查看導出的證書信息

  • ./keytool -printcert -file D:/test.cer

> 所有者: CN=test, OU=Wenyao, O=RnD, L=Yangpu, ST=Shanghai, C=China
> 發佈者: CN=test, OU=Wenyao, O=RnD, L=Yangpu, ST=Shanghai, C=China
> 序列號: 55df5aa1
> 有效期開始日期: Sun Nov 03 18:52:56 CST 2019, 截止日期: Thu Aug 17 18:52:56 CST 2293
> 證書指紋:
         MD5: 98:2A:80:BB:0D:44:C6:DF:97:49:F4:4E:C2:77:4C:48
         SHA1: B9:A4:EB:86:8D:1F:32:BF:D5:A0:4B:BA:9D:45:45:93:FA:B6:12:93
         SHA256: 55:69:5E:42:45:C7:C4:A1:C1:DB:48:63:DC:F9:41:28:F9:7C:FA:86:58:3C:43:C2:05:B2:60:CF:B1:B5:AC:68
         簽名算法名稱: SHA256withRSA
         版本: 3

> 擴展:

> #1: ObjectId: 2.5.29.14 Criticality=false
> SubjectKeyIdentifier [
KeyIdentifier [
0000: F6 D3 A4 43 B9 38 EA C9   49 66 01 3C 96 DE A5 1E  ...C.8..If.<....
0010: 98 84 44 0F                                        ..D.
]
]

常用參數

參數 說明
-genkey 生成一對非對稱密鑰, 相同參數 -genkeypair
-alias < alias> 設置別名
-keyalg < keyalg> 密鑰算法名稱, RSA算法,DSA算法 默認 DSA
- 參數 -genkey時可選算法 RSA,DSA 默認 DSA
- 參數 -genseckey時可選算法 DES,DESede,AES
-keysize < keysize> 密鑰位大小
- 參數 -genkey -keyalg RSA或 DSA 常用密鑰的長度爲1024,2048 (64的倍數)
- 參數 -genseckey -keyalg DES 常用密鑰的長度爲56
- 參數 -genseckey -keyalg DESede 常用密鑰的長度爲112,168
- 參數 -genseckey -keyalg AES 常用密鑰的長度爲128,192或256
-dname < dname> 唯一判別名
- CN(Common Name名字與姓氏)
- OU(Organization Unit組織單位名稱)
- O(Organization組織名稱)
- L(Locality城市或區域名稱)
- ST(State州或省份名稱)
- C(Country國家名稱)
-validity < valDays> 有效天數(證書有效期)
-keypass < arg> 密鑰口令, 密鑰口令至少必須爲6個字符(密鑰的密碼)
-keystore < keystore> 密鑰庫名稱, 指定生成擴展名爲 .keystore的密鑰文件
-storepass < arg> 密鑰庫口令, 密鑰庫口令至少必須爲6個字符(獲取keystore信息所需的密碼)
-storetype < storetype> 密鑰庫類型, 可選算法 JKS,JCEKS,PKCS12,BKS,UBER 默認 JKS
-v 詳細輸出
-list 顯示密鑰庫中的證書信息
-export 將別名指定的證書導出到文件, 相同參數 -exportcert
-file 參數指定導出到文件, 指定證書路徑以及名稱 C:/test.crt
-delete 刪除密鑰庫中某條目
-printcert 查看導出的證書信息
-keypasswd 修改密鑰庫中指定條目口令
-import 將已簽名數字證書導入密鑰庫, 相同參數 -importcert
-rfc 以Base64的編碼格式打印證書

如果您覺得有幫助,歡迎點贊哦 ~ 謝謝!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章