使用 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的編碼格式打印證書 |
如果您覺得有幫助,歡迎點贊哦 ~ 謝謝!!