当前位置: 首页 > 工具软件 > x-KeyTool > 使用案例 >

Java安全基础-Keytool应用

暨弘懿
2023-12-01

创建密钥库数据库。使用Keytool向不存在的密钥库添加新项时,将创建一个新的密钥库。当用户目录中没有指定的密钥库时,下列选项将自动创建一个密钥库:


ˉgenkey选项:用于生成公/私钥对。


ˉimport选项:用于导入可信证书。


ˉidentitydb:用于从JDK1.1中导入数据。

 

默认情况下,Keytool创建扩展名为.keystore的密钥库,并将其存储在用户的主目录中,但是也可以使用选项ˉkeystore来指定文件名。


生成公/私密钥对。使用Keytool生成公/私钥对时,每项都将包括一个私钥和与之相关的证书“链”,证书链中的第一个证书包含与私钥对应的公钥。

 

要生成公/私钥对并将其添加到密钥库中,可以使用命令keytoolˉgenkey。其中选项ˉgenkey创建公/私钥对,并将公钥封装到一个自签名证书中。下面的范例生成一个密钥对,并将公钥封装到一个X.509自签名证书中,再将该证书存储在一条只有一个元素的证书链上。在该命令中,还需要为密钥和密钥库指定密码、使用的算法(RSA)和别名

Example:

Keytool  -genkey  -aloas myalias -keyalg RSA

             -keypass mykeypass  -keystore  mykeystore

                                                             -storepass mystorepass

 

ˉkeyalg:指定密钥使用的加密算法(如RSA)。还可以使用选项keysize指定密钥的长度,如果没有指定长度,那  么 keytool将使用默认值———1024位。

ˉkeypass:指定生成密钥的密码。


ˉkeystore:指定存储密钥的密钥库的名称(二进制文件),如果没有指定,那么将创建一个新的密钥库,并将其存储为.keystore文件。


ˉstorepass:指定访问密钥库的密码。密钥库创建后,要对其做任何修改都必须提供该密码,以便访问密钥库。

在执行这些命令和选项时,还将提示用户提供下列数据,以创建X.500可辨别名称的子项;

CN - Frist and Last name (姓名)

OU - Organizational unit (机构单位)

O - Organization(机构)

L- Ctiry or Province (城市或地区)

ST - State or Province (城市或地区)

C - Country code (国别码)

 

在用户回答完全部问题后,keytool将生成密钥和证书,并将其存储在指定的密钥库文件中。
列出密钥库中的项。Keytool选项ˉlist用于列出密钥库中全部的项,以及查看与别名相关的项。

 

使用keytool列出Java密钥库中的项
> keytool -list -keystore mykeystore

Enter keystore password: mystorepass

 

Keystore type: jks

Keystore provider: SUN

 

Your keystore contains 1 entry

myalias, Sep 5, 2004, keyEntry,

Certificate fingerprint (MD5):

68:A2:CA:OC:D5:C6:D2:96:D5:DC:EA:8D:E3:A1:AB:9B

 

为了显示别名所指定的密钥库项的内容,命令list可以输出证书的MD5指纹。如果指定了选项ˉv,则证书将以人类可读的格式显示;如果指定了选项ˉrfc,则将以Base64编码格式显示证书

 

从密钥库中导出证书项。要进行可信交互,则客户端必须在密钥库中存储签名者的公钥 副本。为此,可以先将证书(包含公钥和签名者的信息)导出为二进制证书文件,然后再将 其作为可信证书导入客户端的密钥库。要将证书导出为二进制文件,则需 要使用keytool的选项ˉexport和ˉfile,以下命令将密钥库mykeystore中别名为myalias的 证书项导出为文件mycertificate.cer。该命令也需要输入密钥库的密码.

 

> keytool -export -alias myalias -file mycertificate.cer -keystore mykeystore

Enter keystore password: mystorepass

Certificate stored in file <mycertificate.cer>

 

导入可信证书。Keytool选项ˉimport用于将可信证书导入密钥库,并将其同唯一的一个别名联系起来。如果客户端信任通信等对体的证书,并希望与其进行可信的客户端交互,则可以在客户端环境中导入可信证书。
将新证书导入密钥库时,keytool工具将验证该证书的完整性和真实性。为此,keytool工具将构建一条以该证书开始到颁发者的自签名证书结束的信任链。可信证书的列表将存储在cacerts文件中。

 

 

 

 

 类似资料: