生成Java签名.keystore文件的方法

今天接触到了Java签名相关的东西,想要学习一下,很多东西介绍的不全面,前因后果也介绍的不是很清楚。找了很多地方终于了解了大概,整理在这里。考虑到很多查看的人的需求点不同,也没有必要把所有的东西放在一遍文章中,导致文章很长。这篇文章就只介绍Java签名.keystore文件的生成方法,和相关的操作。

生成方法

在终端输入:

keytool -genkey -alias javadebugkey(别名) -keypass java123(别名密) -keyalg RSA(生成签名算法) -keysize 1024(密钥长度) -validity 365(有效期,天单位) -keystore javadebugkey.keystore(生成的keystore文件)

括号中是前面字符串含义的说明,这些信息在有的时候是要用的。别名,别名密码等。在终端输入之后,自定义自己的.keystore信息之后把括号内容去掉。之后回车,先会让你输入密码,例如123456,之后会提示让你输入相关信息,输入即可,中国是CN。

对.keystore文件的操作

查看

查看一个keystore文件的内部信息:

keytool -list -v -keystore javadebugkey.keystore -storepass 123456

就可以看到相关信息。

密钥库类型: JKS
密钥库提供方: SUN

您的密钥库包含 1 个条目

别名: javadebugkey
创建日期: 2016-7-6
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
发布者: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
序列号: 48eff7e5
有效期开始日期: Wed Jul 06 21:58:54 CST 2016, 截止日期: Thu Jul 06 21:58:54 CST 2017
证书指纹:
MD5: E7:8B:2F:27:05:3B:35:63:49:FD:79:8A:B5:2A:C6:AE
SHA1: F7:47:F2:71:72:9A:88:43:60:74:AA:2B:65:69:15:03:37:CB:CB:31
SHA256: 77:F6:5B:29:22:85:49:CB:44:1B:A4:4E:BD:3F:B4:2B:D6:B3:05:E1:46:B5:56:7E:F0:AD:C8:08:CA:AB:CE:DE
签名算法名称: SHA256withRSA
版本: 3

扩展:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: A7 11 32 79 F3 16 DD 7B C5 DE 22 8C FC 70 47 BC ..2y......"..pG.
0010: 4B 00 E0 A8 K...
]
]



导出证书

终端输入:

keytool -export -alias javadebugkey -keystore javadebugkey.keystore -file javadebugkey.crt(指定导出的证书) -storepass 123456

即可得到该签名的证书

查看证书

终端输入:

keytool -printcert -file javadebugkey.crt

得到结果:

所有者: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
发布者: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
序列号: 48eff7e5
有效期开始日期: Wed Jul 06 21:58:54 CST 2016, 截止日期: Thu Jul 06 21:58:54 CST 2017
证书指纹:
MD5: E7:8B:2F:27:05:3B:35:63:49:FD:79:8A:B5:2A:C6:AE
SHA1: F7:47:F2:71:72:9A:88:43:60:74:AA:2B:65:69:15:03:37:CB:CB:31
SHA256: 77:F6:5B:29:22:85:49:CB:44:1B:A4:4E:BD:3F:B4:2B:D6:B3:05:E1:46:B5:56:7E:F0:AD:C8:08:CA:AB:CE:DE
签名算法名称: SHA256withRSA
版本: 3

扩展:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: A7 11 32 79 F3 16 DD 7B C5 DE 22 8C FC 70 47 BC ..2y......"..pG.
0010: 4B 00 E0 A8 K...
]
]

删除信息

删除一个条目

keytool -delete -alias javadebugkey -keystore javadebugkey.keystore -storepass 123456

之后用上面的方法查看结果:

密钥库类型: JKS
密钥库提供方: SUN

您的密钥库包含 0 个条目

导入证书

将我们刚才的证书导入:

keytool -import -alias java -keypass java123 -file javadebugkey.crt -keystore javadebugkey.keystore -storepass 123456

再次查看文件信息:

密钥库类型: JKS
密钥库提供方: SUN

您的密钥库包含 1 个条目

别名: java
创建日期: 2016-7-6
条目类型: trustedCertEntry

所有者: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
发布者: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
序列号: 48eff7e5
有效期开始日期: Wed Jul 06 21:58:54 CST 2016, 截止日期: Thu Jul 06 21:58:54 CST 2017
证书指纹:
MD5: E7:8B:2F:27:05:3B:35:63:49:FD:79:8A:B5:2A:C6:AE
SHA1: F7:47:F2:71:72:9A:88:43:60:74:AA:2B:65:69:15:03:37:CB:CB:31
SHA256: 77:F6:5B:29:22:85:49:CB:44:1B:A4:4E:BD:3F:B4:2B:D6:B3:05:E1:46:B5:56:7E:F0:AD:C8:08:CA:AB:CE:DE
签名算法名称: SHA256withRSA
版本: 3

扩展:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: A7 11 32 79 F3 16 DD 7B C5 DE 22 8C FC 70 47 BC ..2y......"..pG.
0010: 4B 00 E0 A8 K...
]
]



更多操作

更多操作请看keytool的帮助

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 服务器https配置 配置https操作说明文档 1、查看服务器环境配置(tomcat和apache合并使用) 2...
    南京杨小兵阅读 12,967评论 0 9
  • 一. Keytool创建和导入命令 创建keystore和密钥对 为存在的keystore生成证书请求文件CSR ...
    sngths阅读 11,463评论 0 1
  • 非对称加密和摘要非对称加密的特性和用法非对称加密算法可能是世界上最重要的算法,它是当今电子商务等领域的基石。简而言...
    哈哈哈我的简书账号阅读 5,065评论 1 5
  • HTTPS搭建方案 一、 操作步骤 进入jdk的安装目录,切换到bin目录下,然后按顺序执行如下的命令1、 ...
    _奔跑的蜗牛_阅读 11,885评论 1 2
  • 新手妈妈由于产后韧带松弛,解剖结构改变,容易损伤到腰椎,在抱孩子时也需注意,要使用正确的方法,才能避免腰痛。 “抱...
    第6通道阅读 3,068评论 0 0