本篇内容主要讲解“JAVA Keytool工具怎么生成Keystore和Truststore文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JAVA Keytool工具怎么生成Keystore和Truststore文件”吧!
网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、小程序设计、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了双流免费建站欢迎大家使用!
Keystore可以存放除了证书、公钥外其它敏感信息,比如密码、私钥……证书可以是关联的证书或者一个证书链。证书链有客户端证书和一个或多个CA证书。
Truststore仅仅包含客户端信任的证书、公钥。它无法存放敏感信息。
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。
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文件加密密码。样例输出结果如下:
输入密钥库口令: 存储在文件中的证书
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 证书已添加到密钥库中
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... ] ]
-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文件”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!