使用 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的编码格式打印证书

如果您觉得有帮助,欢迎点赞哦 ~ 谢谢!!

发布了62 篇原创文章 · 获赞 325 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qcl108/article/details/102878326
今日推荐