新网创想网站建设,新征程启航

为企业提供网站建设、域名注册、服务器等服务

JAVAKeytool工具怎么生成Keystore和Truststore文件

本篇内容主要讲解“JAVA Keytool工具怎么生成Keystore和Truststore文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JAVA Keytool工具怎么生成Keystore和Truststore文件”吧!

网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、小程序设计、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了双流免费建站欢迎大家使用!

Keystore可以存放除了证书、公钥外其它敏感信息,比如密码、私钥……证书可以是关联的证书或者一个证书链。证书链有客户端证书和一个或多个CA证书。

Truststore仅仅包含客户端信任的证书、公钥。它无法存放敏感信息。

一、生成含有一个私钥的keystore文件

keytool -genkeypair -alias certificatekey -keyalg RSA -validity 7 -keystore keystore.jks

上述命令执行后,我们需要输入文件加密密码、相关个人信息以及秘钥口令(秘钥口令可以与文件加密密码一致)。样例输出如下:

输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
  [Unknown]:  chris
您的组织单位名称是什么?
  [Unknown]:  free
您的组织名称是什么?
  [Unknown]:  free
您所在的城市或区域名称是什么?
  [Unknown]:  city
您所在的省/市/自治区名称是什么?
  [Unknown]:  city
该单位的双字母国家/地区代码是什么?
  [Unknown]:  cn
CN=chris, OU=free, O=free, L=city, ST=city, C=cn是否正确?
  [否]:  y

输入  的密钥口令
        (如果和密钥库口令相同, 按回车):
再次输入新口令:

Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore keystore.jks -destkeystore keystore.jks -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。

二、查看生成的keystore文件

keytool -list -v -keystore keystore.jks

上述命令执行后,我们需要输入之前设定的文件加密密码。校验成功后,命令会展示出keystore文件的内容,样例输出如下:

输入密钥库口令:
密钥库类型: jks
密钥库提供方: SUN

您的密钥库包含 1 个条目

别名: certificatekey
创建日期: 2019-11-21
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=chris, OU=free, O=free, L=city, ST=city, C=cn
发布者: CN=chris, OU=free, O=free, L=city, ST=city, C=cn
序列号: 2b57a2eb
有效期为 Thu Nov 21 14:17:26 CST 2019 至 Thu Nov 28 14:17:26 CST 2019
证书指纹:
         MD5:  1F:FE:8E:D1:70:98:13:B8:06:2A:FB:7A:A6:88:D8:C4
         SHA1: 87:71:6B:37:16:0D:78:4A:48:53:70:6F:6D:ED:0C:81:5C:6D:D0:09
         SHA256: 05:06:9A:CC:69:18:C6:D1:45:FA:4C:59:38:70:69:FC:6B:4B:B2:C8:BF:9B:0A:11:9E:FA:2E:DE:48:C9:38:29
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 80 05 7D……

三、导出证书

keytool -export -alias certificatekey -keystore keystore.jks -rfc -file selfsignedcert.cer

上述命令导出证书到文件selfsignedcert.cer中,命令执行时,需要输入keystore文件加密密码。样例输出结果如下:

输入密钥库口令:
存储在文件  中的证书

四、导入证书到truststore文件中

keytool -import -alias certificatekey -file selfsignedcert.cer  -keystore truststore.jks

上述命令执行时,要求输入truststore文件加密密码。命令执行成功后,证书selfsignedcert.cer被增加到了truststore.jks文件中。样例输出如下:

输入密钥库口令:
再次输入新口令:
所有者: CN=chris, OU=free, O=free, L=city, ST=city, C=cn
发布者: CN=chris, OU=free, O=free, L=city, ST=city, C=cn
序列号: 2b57a2eb
有效期为 Thu Nov 21 14:17:26 CST 2019 至 Thu Nov 28 14:17:26 CST 2019
证书指纹:
         MD5:  1F:FE:8E:D1:70:98:13:B8:06:2A:FB:7A:A6:88:D8:C4
         SHA1: 87:71:6B:37:16:0D:78:4A:48:53:70:6F:6D:ED:0C:81:5C:6D:D0:09
         SHA256: 05:06:9A:CC:69:18:C6:D1:45:FA:4C:59:38:70:69:FC:6B:4B:B2:C8:BF:9B:0A:11:9E:FA:2E:DE:48:C9:38:29
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 80 05 7D 67 5E 18 89 4F   95 E8 60 41 B3 C4 6C 8D  ...g^..O..`A..l.
0010: 38 90 8E 0B                                        8...
]
]

是否信任此证书? [否]:  y
证书已添加到密钥库中

五、查看生成的truststore文件

keytool -list -v -keystore truststore.jks

上述命令执行时,要求输入truststore加密密码。之后会展示truststore的相关内容,样例输出如下:

输入密钥库口令:
密钥库类型: jks
密钥库提供方: SUN

您的密钥库包含 1 个条目

别名: certificatekey
创建日期: 2019-11-21
条目类型: trustedCertEntry

所有者: CN=chris, OU=free, O=free, L=city, ST=city, C=cn
发布者: CN=chris, OU=free, O=free, L=city, ST=city, C=cn
序列号: 2b57a2eb
有效期为 Thu Nov 21 14:17:26 CST 2019 至 Thu Nov 28 14:17:26 CST 2019
证书指纹:
         MD5:  1F:FE:8E:D1:70:98:13:B8:06:2A:FB:7A:A6:88:D8:C4
         SHA1: 87:71:6B:37:16:0D:78:4A:48:53:70:6F:6D:ED:0C:81:5C:6D:D0:09
         SHA256: 05:06:9A:CC:69:18:C6:D1:45:FA:4C:59:38:70:69:FC:6B:4B:B2:C8:BF:9B:0A:11:9E:FA:2E:DE:48:C9:38:29
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 80 05 7D 67 5E 18 89 4F   95 E8 60 41 B3 C4 6C 8D  ...g^..O..`A..l.
0010: 38 90 8E 0B                                        8...
]
]

六、Java指定keystore和truststore

-Djavax.net.ssl.keyStore=keystore.jks
-Djavax.net.ssl.keyStorePassword=******
-Djavax.net.ssl.trustStore=truststore.jks
-Djavax.net.ssl.trustStorePassword=******

上面的所有参数均为JVM启动参数,设置keystore和truststore属性。其中keystore与truststore属性均为文件的具体路径。如果没有显示指定上述属性,那么JVM默认使用$JAVA_HOME/lib/security/cacerts文件作为truststore,并读取其中的授信证书(默认密码为changeit)。

到此,相信大家对“JAVA Keytool工具怎么生成Keystore和Truststore文件”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


当前名称:JAVAKeytool工具怎么生成Keystore和Truststore文件
文章URL:http://wjwzjz.com/article/pshdio.html
在线咨询
服务热线
服务热线:028-86922220
TOP