1、Keytool是什么?

keytool是个密钥和证书管理工具,使用户能够管理自己的公钥/私钥对及相关证书,用于认证服务。

2、Keytool安装

Keytool是一个Java自带的数据证书的管理工具,无需单独安装,只要电脑上安装有JDK或者JRE,就可以使用Keytool

与java.exe,javac.exe命令位于同一个位置,即JDK安装目录或者JRE的安装目录里面,例如:

D:\Program Files\Java\jdk1.8.0_181\bin

D:\Program Files\Java\jdk1.8.0_181\jre\bin

3、Keytool密钥存储形式

Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中。也就是说,在keystore里只包含两种数据:

  • 密钥实体:如果采用非对称加密形式,则包含私钥和配对公钥,否则只包括密钥。
  • 可信任的证书实体:只包含公钥

4、Keytool的使用教程:

第一步:生成秘钥库并创建第一个条目

秘钥需要存储在秘钥库中,秘钥库可以理解为一个存储了一个或多个秘钥的文件。一个秘钥库可以存储多个密钥对,每个秘钥对都需要给它们取一个别名。

因为不存储任何条目的秘钥库是没有意义的,所以我们在生成秘钥库的时候需要指定一个条目,如果不指定,默认是的条目名称是mykey。

我们在 E:\keystore 目录下生成一个文件名为test.keystore的秘钥库,因为这个文件是第一次生成,必须同时生成一个条目,我决定将该秘钥库存储的第一个秘钥对的条目取名为mytest。命令是:

keytool  -genkey  -keystore  "E:\keystore\test.keystore"   -alias  mytest   -keyalg   RSA   -validity  365

参数说明:

-genkey: 表示生成密钥对(公钥和私钥)

-keystore:每个 keytool 命令都有一个 -keystore 选项,用于指定 keytool 管理的密钥仓库的永久密钥仓库文件名称及其位置。如果不指定 -keystore 选项,则缺省密钥仓库将是宿主目录中(由系统属性的"user.home"决定)名为 .keystore 的文件。如果该文件并不存在,则它将被创建。

-alias:指定密钥条目的别名,该别名是公开的。

-keyalg:指定密钥的算法,如:RSA、DSA(如果不指定默认采用DSA))

-validity:指定创建的证书有效期多少天

执行上述命令,如下所示:

C:\Users\mybatis>keytool  -genkey  -keystore  "E:\keystore\test.keystore"   -alias  mytest   -keyalg   RSA   -validity  365

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

输入 <mytest> 的密钥口令
        (如果和密钥库口令相同, 按回车):

5、注意事项

1、如果指定的密钥库是第一次创建,则必须在创建时初始化一个条目。

2、密钥库的密码至少必须6个字符,可以是纯数字或者字母或者数字和字母的组合等。

3、"名字与姓氏"应该是输入域名,而不是我们的个人姓名,其他的可以不填。

执行完上述命令后,在操作系统的指定目录E:\keystore下生成了一个"test.keystore"的文件。

备注:需要设置密钥库口令和密钥口令,实现双保险的目的。

标签: none

添加新评论