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

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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值