使用JDK自带的工具keytool生成证书
1、以管理员身份,打开CMD命令窗口,输入如下命令,生成证书:Microsoft Windows [版本 10.0.17134.523](c) 2018 Microsoft Corporation。保留所有权利。C:\Users\lenovo>keytool -genkey -alias caskeystore -keypass 123456 -keyalg RSA -keysto.
1、以管理员身份,打开CMD命令窗口,输入如下命令,生成证书:
Microsoft Windows [版本 10.0.17134.523]
(c) 2018 Microsoft Corporation。保留所有权利。
C:\Users\lenovo>keytool -genkey -alias caskeystore -keypass 123456 -keyalg RSA -keystore thekeystore
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
[Unknown]: liuhq
您的组织单位名称是什么?
[Unknown]: dahua
您的组织名称是什么?
[Unknown]: xadhsd
您所在的城市或区域名称是什么?
[Unknown]: xiaan
您所在的省/市/自治区名称是什么?
[Unknown]: shaanxi
该单位的双字母国家/地区代码是什么?
[Unknown]: cn
CN=liuhq, OU=dahua, O=xadhsd, L=xiaan, ST=shaanxi, C=cn是否正确?
[否]: y
Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore thekeystore -destkeystore thekeystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
2、输入如下命令,导出证书:
C:\Users\lenovo>keytool -export -alias caskeystore -keystore thekeystore -rfc -file cas.crt
输入密钥库口令:
存储在文件 <cas.crt> 中的证书
Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore thekeystore -destkeystore thekeystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
3、输入如下命令,将证书导入JRE:(注意:JAVA_HOME不能有空格)
C:\Users\lenovo>keytool -import -alias caskeystore -keystore %JAVA_HOME%\jre\lib\security\cacerts -file cas.crt -trustcacerts -storepass changeit
所有者: CN=liuhq, OU=dahua, O=xadhsd, L=xiaan, ST=shaanxi, C=cn
发布者: CN=liuhq, OU=dahua, O=xadhsd, L=xiaan, ST=shaanxi, C=cn
序列号: 207b3297
有效期为 Thu Jan 31 13:13:45 CST 2019 至 Wed May 01 13:13:45 CST 2019
证书指纹:
MD5: 9E:30:D5:C8:AA:CD:11:A1:BF:BF:76:9D:AE:27:1F:06
SHA1: 4F:07:21:CA:8C:37:35:66:91:DF:B7:DA:87:31:42:03:CC:29:9B:76
SHA256: CB:37:43:6F:FB:DF:94:57:13:4C:EB:A8:B2:A3:C4:A6:D7:F8:42:1A:9F:B2:B6:97:92:F5:9A:01:1C:30:00:7C
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3
扩展:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 8D D1 B7 5C 68 EB 10 F3 9A B6 3D 5E 17 98 C9 24 ...\h.....=^...$
0010: FB 8C F3 7A ...z
]
]
是否信任此证书? [否]: y
证书已添加到密钥库中
C:\Users\lenovo>
注意:
1、出现以下错误是因为已经生成过一次证书,别名 <caskeystore> 已经存在。
C:\Users\lenovo>keytool -genkey -alias caskeystore -keypass 123456 -keyalg RSA -keystore thekeystore
输入密钥库口令:
keytool 错误: java.lang.Exception: 未生成密钥对, 别名 <caskeystore> 已经存在
解决办法:删除caskeystore即可
2、出现以下错误是因为已经导入过一次证书,别名 <caskeystore> 已经存在。
C:\Users\lenovo>keytool -import -alias caskeystore -keystore %JAVA_HOME%\jre\lib\security\cacerts -file cas.crt -trustcacerts -storepass changeit
keytool 错误: java.lang.Exception: 证书未导入, 别名 <caskeystore> 已经存在
解决办法:执行以下命令:
keytool -delete -alias caskeystore -keystore %JAVA_HOME%\jre\lib\security\cacerts -storepass changeit
参考:
https://docs.oracle.com/javase/8/docs/technotes/tools/windows/keytool.html#CHDBGFHE
--------------------------------------------
四、配置Hosts文件
127.0.0.1 cas.server.com
五、证书生成
1、使用java自带keytool创建本地密钥库
keytool -genkey -alias cas.server.com -keyalg RSA -keystore D:/xadhsd/cas/casServer.keystore
(
keytool 错误: java.lang.Exception: 未生成密钥对, 别名 <cas.server.com> 已经存在
删除当前目录下的证书
)
changeit
changeit
cas.server.com
wusong
yanfazu
beijing
dongcheng
zh
y
changeit
changeit
2、把密钥库导出成证书文件
keytool -export -alias cas.server.com -keystore casServer.keystore -file casServer.crt -storepass changeit
keytool -export -alias cas.server.com -keystore D:/xadhsd/cas/casServer.keystore -file D:/xadhsd/cas/casServer.crt -storepass changeit
3、查看证书
keytool -printcert -file casServer.crt
4、将创建过的证书导入到java证书库
进入caserts目录再操作
cd C:\Program\Java\jre1.8.0_171\lib\security
keytool -import -keystore cacerts -file "C:\Windows\System32\casServer.crt" -alias cas.server.com
keytool -import -keystore cacerts -file D:/xadhsd/cas/casServer.crt -alias cas.server.com
test:
keytool -import -keystore cacerts -file "C:\Windows\System32\casServer.crt" -alias cas.server.com -trustcacerts -storepass changeit
keytool -import -keystore cacerts -file "C:\Windows\System32\casServer.cer" -alias cas.server.com -trustcacerts -storepass changeit
keytool -import -keystore cacerts -file "C:\Windows\System32\casServer.crt" -alias app1.com
(注意:
如果出现:keytool 错误: java.lang.Exception: 证书未导入, 别名 <cas.server.com> 已经存在
运行命令:keytool -delete -alias cas.server.com -keystore cacerts -storepass changeit
重新执行:keytool -import -keystore cacerts -file "C:\Windows\System32\casServer.crt" -alias cas.server.com
)
是否信任此证书? [否]: y
5. 查看JDK证书内容
keytool -list -v -keystore cacerts -alias cas.server.com
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)