java keytool下载_Java中Keytool工具的使用总结(一)

keytool是一个Java数据证书的管理工具,keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里,包含两种数据:

(1)密钥实体(Key entity)

a、密钥(secret key)

b、私钥和配对公钥(采用非对称加密)。公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。

(2)可信任的证书实体(trusted certificate entries)

a、只包含公钥

注意:ailas(别名)每个keystore都关联这一个独一无二的alias(别名),这个alias通常不区分大小写

JDK中keytool常用命令

-genkey

在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书。在没有指定生成位置的情况下,keystore会存在用户系统默认目录。

实例:不指定keystore文件的存储位置,如下:D:\>keytool -genkey

-alias aliasTest

-keyalg RSA

-keysize 1024

-keypass aaaaaa

-storepass aaaaaa

-dname "cn=zhangsan,ou=,o=,l=Hangzhou,st=,c="

在windows7中将会在“C:\用户\当前用户”目录下面存在一个.keystore文件

-alias

产生别名。默认为:mykey。实例:在当目录下面创建一个keystore文件,如下:D:\>keytool -genkey

-alias testAlias

-keypass aaaaaa

-keyalg RSA

-keysize 1024

-validity 365

-keystore test.keystore

-storepass aaaaaa

-dname "CN=Zhangsan,OU=,O=,L=Hangzhou,ST=,C="

在windows的dos窗口执行该语句后,当前目录下面应该存在test.keystore文件。

-keystore

指定密钥库的名称(产生的各类信息将放在.keystore文件中)。默认放在用户主目录中名为.keystore的文件。

-keyalg

指定密钥的算法。如:RSA、DSA等。默认采用DSA算法。

-validity

指定创建的证书有效期多少天。默认为90天

-keysize

指定密钥长度。默认为1024位

-storepass

指定密钥库的密码(获取keystore信息所需的密码)

-keypass

指定别名条目的密码(私钥的密码)

-dname

指定证书拥有者信息 例如:"CN=名字与姓氏,OU=组织单位名称,O=组织名称,L=城市或区域名称,ST=州或省份名称,C=单位的两字母国家代码"

-list

显示密钥库中的证书信息。实例:显示E目录下面的my.keystore文件中的证书信息,如:D:\>keytool -list -keystore test.keystore -storepass aaaaaa

密钥库类型: JKS

密钥库提供方: SUN

您的密钥库包含 1 个条目

testalias, 2015-12-7, PrivateKeyEntry,

证书指纹 (SHA1): C3:E9:34:D2:A2:9C:92:88:12:92:5A:A9:AC:D8:B9:B1:BA:52:53:E1

-v

显示密钥库中的证书详细信息。实例:使用-list -v显示证书的详细信息。如下:D:\>keytool -list -v -keystore test.keystore -storepass aaaaaa

密钥库类型: JKS

密钥库提供方: SUN

您的密钥库包含 1 个条目

别名: testalias

创建日期: 2015-12-7

条目类型: PrivateKeyEntry

证书链长度: 1

证书[1]:

所有者: CN=Zhangsan, OU=, O=, L=Hangzhou, ST=, C=

发布者: CN=Zhangsan, OU=, O=, L=Hangzhou, ST=, C=

序列号: 6fcee440

有效期开始日期: Mon Dec 07 20:33:08 CST 2015, 截止日期: Tue Dec 06 20:33:08 CST 2016

证书指纹:

MD5: FD:65:55:14:E5:0B:E5:9F:9A:70:5F:F4:7E:84:38:B3

SHA1: C3:E9:34:D2:A2:9C:92:88:12:92:5A:A9:AC:D8:B9:B1:BA:52:53:E1

SHA256: 33:D1:D8:EE:B2:67:59:BB:E8:2B:8F:5C:07:78:89:CA:7C:E5:FE:AB:4F:17:46:3E:84:38:88:30:C4:0B:1A:B2

签名算法名称: SHA256withRSA

版本: 3

扩展:

#1: ObjectId: 2.5.29.14 Criticality=false

SubjectKeyIdentifier [

KeyIdentifier [

0000: 2D FE E9 75 8E B9 1F 81   4B 3F 8E D0 ED 28 F1 13  -..u....K?...(..

0010: FB 7D B9 87                                        ....

]

]

*******************************************

*******************************************

注意:

-v参数要配合-list一起使用,如下将会出现错误:D:\>keytool -v -keystore test.keystore -storepass aaaaaa

用法错误: 没有提供命令

密钥和证书管理工具

...

-export

将别名指定的证书导出到文件。格式如下:

keytool -export -alias 需要导出的别名

-keystore 指定keystore

-file 指定导出的证书位置及证书名称

-storepass 密码

实例:将test.keystore中别名为testAlias的导出一个test.crt证书。如下:D:\>keytool -export -alias testAlias

-keystore test.keystore

-file test.crt

-storepass aaaaaa

存储在文件 中的证书

-file

参数指定导出到文件的文件名。默认读时为标准输入,写时为标准输出

-delete

删除密钥库中某条目。格式如下:

keytool -delete

-alias 指定需删除的别

-keystore 指定keystore

实例:从test.keystore中删除别名testAlias的密钥条目,如下:D:\>keytool -delete

-alias testAlias

-keystore test.keystore

-storepass aaaaaa

如果没有任何提示,则表示你删除成功了。如果再次执行该语句,则会抛出如下错误信息:keytool 错误: java.lang.Exception: 别名  不存在

这是因为别名为testAlias的已经被删除了。

-storepass

密码

-printcert

查看导出的证书信息。如:keytool -printcert -file yushan.crt

-keypasswd

修改密钥库中指定条目口令。如:

keytool -keypasswd

-alias 需修改的别名

-keypass 旧密码

-new 新密码

-storepass keystore密码

-keystore sage

-storepasswd

修改keystore口令。如:

keytool -storepasswd

-keystore e:\yushan.keystore(需修改口令的keystore)

-storepass 123456(原始密码)

-new yushan(新密码)

-import

将已签名数字证书导入密钥库。如:

keytool -import

-alias 指定导入条目的别名

-keystore 指定keystore

-file 需导入的证书

到这里就基本上将keytool工具的每个参数的含义大概讲解了一下,下面你可以参考“Java中Keytool工具的使用总结(二)”来学习怎样使用keytool来生成我们需要的keystore文件和证书。祝你:学习成功!!!^_^

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值