KeyTool简介

1. keytool 是个**和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。
2. Keystore:keytool将**和证书存在一个称为keystore的文件中。
 在keystore包含两种数据:
  **实体——**(secret key)又或者是私钥和配对**(非对称加密)
  可信任的证书实体——只包含公钥
 Alias(别名):每个keystore都关联这一个独一无二的alias,通常不区分大小写。
 Keystore存储位置:在没有制定生成位置的情况下,keystore会存到用户的系统默认目录,
如:对于window xp系统,会生成在系统的C:\Documents and Settings\UserName\下.keystore

用法
在JDK\Bin的目录下你就可以看到keytool的执行文件,不过不能双击执行,需要命令来操作.
常用命令 使用keytool -command_name -help 查看具体命令的用法

-certreq 生成证书请求
-changealias 更改条目的别名
-delete 删除条目
-exportcert 导出证书
-genkeypair 生成**对 创建证书
-genseckey 生成**
-gencert 根据证书请求生成证书
-importcert 导入证书或证书链
-importpass 导入口令
-importkeystore 从其他**库导入一个或所有条目
-keypasswd 更改条目的**口令
-list 列出**库中的条目
-printcert 打印证书内容
-printcertreq 打印证书请求的内容
-printcrl 打印 CRL 文件的内容
-storepasswd 更改**库的存储口令

3. 生成证书和**对 -genkeypair
创建一个别名为test1的证书,该证书存放在名为test.keystore的**库中,如果test.ketstore不存在则创建
keytool -genkeypair -alias test1 -keyalg RSA -keystore test.keystore

-genkeypair:生成一对非对称**;
-alias:指定**对的别名
-keyalg:指定加密算法,本例中的采用通用的RAS加密算法;
-keystore:**库的路径及名称

KeyTool简介

4. 查看keystore库条目信息 -list
keytool -list -RFC -keystore test.keystore

-rfc” 表示以base64输出文件,否则以二进制输出。
test.keystore 也可以为 .jks格式 ;

使用-help 查看命令用法
KeyTool简介
查看test.keystore条目信息
KeyTool简介

5. 导出证书到文件 -exportcert
keytool -exportcert -alias test1 -file test1.cer -keystore test.keystore

test.keystore也可以是.jks的证书库
test1.cer也可以是.crt的后缀文件,包含证书的信息和证书的公钥,不包括私钥,可以公开

KeyTool简介

6. 查看证书信息 -printcert
keytool -printcert -rfc -file test1.cer
KeyTool简介

7. 证书导入到别的keystore中,添加信任,新添的条目类型为truestedCertEntry。
(1)先从其他的keystore 中导出别名为test2 的证书,文件为test2.cer
keytool -exportcert -alias test2 -file test2.cer -keystore other.keystore
KeyTool简介

(2)将test2.cer 证书导入到test.keystore中,别名为test2
keytool -importcert -alias test2 -file test2.cer -keystore test.keystore
KeyTool简介
(3)再次查看test.keystore 的条目信息,发现新增test2,且类型和原来自身条目不同
KeyTool简介
8. 删除**库中的条目 -delete
keytool -delete -alias test2 -keystore test.keystore
KeyTool简介

9. 修改证书条目口令 -keypasswd
keytool -keypasswd -alias test1 -keypass root123 -new 123456 -keystore test.keystore -storepass root123

-keypass:条目原始密码
-new:条目新密码
-storepass:**库的密码

10. 修改**库keystore口令 -storepasswd
keytool -storepasswd -new 123456 -keystore test.keystore -storepass root123

-storepass root123:**库原始密码
-new 123456:**库新密码

11. 修改条目信息 ,可以使用-help 查看具体操作
-selfcert –changealias

参考文章
https://blog.csdn.net/xiyuekami/article/details/78490044?locationNum=4&fps=1