使用 JDK 提供的工具,生成不安全的 SSL 证书。
STEP 1
D:\java\jdk-1.8\jre\bin>keytool -genkey -alias server -keyalg RSA -keysize 2048 -keystore d:\keystore.jks -storepass a123456 -keypass a123456
您的名字与姓氏是什么?
[Unknown]: Jacky
您的组织单位名称是什么?
[Unknown]: who
您的组织名称是什么?
[Unknown]: who
您所在的城市或区域名称是什么?
[Unknown]: bj
您所在的省/市/自治区名称是什么?
[Unknown]: bj
该单位的双字母国家/地区代码是什么?
[Unknown]: 86
CN=Jacky, OU=who, O=who, L=bj, ST=bj, C=86是否正确?
[否]: y
Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore d:\keystore.jks -destkeystore d:\keystore.jks -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
STEP 2
D:\java\jdk-1.8\jre\bin>keytool -export -alias server -file d:\root.cer -keystore d:\keystore.jks
输入密钥库口令: a123456
存储在文件 <d:\root.cer> 中的证书
Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore d:\keystore.jks -destkeystore d:\keystore.jks -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
STEP 3
D:\java\jdk-1.8\jre\bin>keytool -import -alias server -trustcacerts -file d:\root.cer -keystore d:\trust.jks
输入密钥库口令: a123456
再次输入新口令:a123456
所有者: CN=Jacky, OU=who, O=who, L=bj, ST=bj, C=86
发布者: CN=Jacky, OU=who, O=who, L=bj, ST=bj, C=86
序列号: 59ef7dac
生效时间: Thu May 09 12:52:48 CST 2024, 失效时间: Wed Aug 07 12:52:48 CST 2024
证书指纹:
SHA1: 77:E7:B2:96:1F:42:69:36:FC:76:45:4A:DF:52:89:31:1B:04:CA:A9
SHA256: B3:CF:34:66:56:10:2B:E8:A9:54:32:13:1D:44:BC:85:19:65:38:40:28:5B:30:98:E2:72:BE:3E:71:D7:F1:7C
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3
扩展:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 4E 60 68 90 C1 4C 2F 92 35 4C F6 E0 DF 89 30 B6 N`h..L/.5L....0.
0010: A9 CD BC 93 ....
]
]
是否信任此证书? [否]: y
证书已添加到密钥库中
STEP 4
D:\java\jdk-1.8\jre\bin>keytool -importkeystore -srckeystore d:\keystore.jks -destkeystore d:\server.p12 -srcstoretype jks -deststoretype pkcs12
正在将密钥库 d:\keystore.jks 导入到 d:\server.p12...
输入目标密钥库口令:
再次输入新口令:
输入源密钥库口令:
已成功导入别名 server 的条目。
已完成导入命令: 1 个条目成功导入, 0 个条目失败或取消
STEP 5 需在对应服务器上执行
获取crt文件
openssl pkcs12 -in /usr/local/ssl/cert/server.p12 -nokeys -clcerts -out /usr/local/ssl/cert/server.crt
获取key文件
openssl pkcs12 -in /usr/local/ssl/cert/server.p12 -nocerts -nodes -out /usr/local/ssl/cert/server.key