前言
使用Keytool需先安装jdk
Windows安装jdk
ubunt16.04命令行安装jdk
Keytool简介
Keytool 是一个Java数据证书的管理工具 。
Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中。
Keystore文件,包含两种数据:密钥实体(Key entity)-密钥(secret key)或者是私钥和配对公钥(采用非对称加密)可信任的证书实体(trusted certificate entries)-只包含公钥。
创建证书
创建一个别名为test1
的证书条目,该条目存放在名为test.jks
的密钥库中,若test.jks
密钥库不存在则创建。
keytool -genkeypair -alias "test1" -keyalg "RSA" -keystore "test.jks"
参数说明
- -genkeypair:生成一对非对称密钥;
- -alias:指定密钥对的别名,该别名是公开的;
- -keyalg:指定加密算法,本例中的采用通用的RAS加密算法;
- -keystore: 密钥库的路径及名称,不指定的话,默认在操作系统的用户目录下生成一个
.keystore
的文件。
注意
1.“名字与姓氏”应该是域名,若输成了姓名,和真正运行的时候域名不符,会出问题;
2.再次输入密码,第一次输入的是密钥库(keystore)的密码,第二次输入的是证书条目的密码;
3.这里所说的证书库和密钥库是等同的(个人观点)。
查看证书库
查看名为 test.jks
的证书库中的证书条目
keytool -list -keystore test.jks
需要输入上边设置的秘钥库口令
导出到证书文件
将名为test.jks
的证书库中别名为test1
的证书条目导出到证书文件test.crt
中
keytool -export -alias test1 -file test.crt -keystore test.jks
导入证书信息
将证书文件test.crt
导入到名为test_cacerts
的证书库中。
keytool -import -keystore test_cacerts -file test.crt
查看证书信息
查看 test.crt
证书文件中的信息。
keytool -printcert -file "test.crt"
删除秘钥库中的条目
删除密钥库test.jks
中别名为test
的证书条目
keytool -delete -keystore test.jks -alias test
修改证书条目的口令
修改密钥库test.jks
中别名为test1
的证书条目的密码
(1)交互式
keytool -keypasswd -alias test1 -keystore test.jks
(2)非交互式
keytool -keypasswd -alias test1 -keypass testtesttest1 -new testtest1 -storepass testtest -keystore test.jks
其中 testtesttest1
别名为 test1
条目的原密码,testtest1
是条目的新密码。