keytool.exe -genkey -alias test -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore test.p12 -validity 3650
完整过程:
C:UsersMr yang>keytool.exe -genkey -alias test -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore test.p12 -validity 3650 输入密钥库口令: 再次输入新口令: 您的名字与姓氏是什么? [Unknown]: li 您的组织单位名称是什么? [Unknown]: yz 您的组织名称是什么? [Unknown]: yz 您所在的城市或区域名称是什么? [Unknown]: gz 您所在的省/市/自治区名称是什么? [Unknown]: gd 该单位的双字母国家/地区代码是什么? [Unknown]: china CN=li, OU=yz, O=yz, L=gz, ST=gd, C=china是否正确? [否]: y
-genkey: 生成SSL证书
-alias: 证书别名
-storetype: 秘钥仓库类型
-keyalg: 生成证书算法
-keysize: 证书大小
-keystore: 生成证书保存路径
-validity: 证书有效期
因为没有指定存储路径,默认以命令执行路径作为证书保存路径,生成完成 C:UsersMr yang 下即可找到名为 test.p12 的证书文件
配置 ssl 证书把证书放到资源根中
增加配置项:
# ssl证书路径 server.ssl.key-store=classpath:test.p12 # 别名 server.ssl.key-alias=test # 证书设置密码 server.ssl.key-store-password=123456访问测试
http 访问失败
https 访问成功
因为是用 keytools 生成的,所以并不被认可,此时可以通过手动的方式奖服务器证书导入到客户端的信任证书库中,让客户端信任这个证书
keytool -import -alias client -file test.cer -keystore servertrust.keystore
-file 要导入的证书文件(test.cer 既从服务端下载的证书)
-keystore 要导入的证书库(servertrust.keystore 既服务信任证书库)
完整过程:
C:UsersMr yang>keytool -import -alias client -file test.cer -keystore servertrust.keystore
输入密钥库口令:
再次输入新口令:
所有者: CN=li, OU=yz, O=yz, L=gz, ST=gd, C=china
发布者: CN=li, OU=yz, O=yz, L=gz, ST=gd, C=china
序列号: 14658239
有效期为 Mon Jul 04 08:53:07 CST 2022 至 Thu Jul 01 08:53:07 CST 2032
证书指纹:
MD5: 89:B5:25:EA:75:FF:ED:9D:A8:74:03:20:D5:30:EE:D6
SHA1: A9:2C:A2:47:DB:E5:57:0C:69:93:B1:D5:23:B7:BC:F2:CD:06:79:9D
SHA256: CE:70:3F:C2:92:49:4C:6F:44:17:E2:FC:3B:71:9C:0F:A7:77:EC:05:1F:79:AA:16:20:41:AA:EF:DC:89:62:1D
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3
扩展:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 61 7F C3 51 C1 39 FD C1 0B 6B 02 71 97 0E 20 42 a..Q.9...k.q.. B
0010: E4 81 4A AD ..J.
]
]
是否信任此证书? [否]: y
证书已添加到密钥库中
查看某个库的信任证书列表
key -list -v -keystore server.keystore



