证书的相关操作主要是在CMD窗口使用keytool工具
Keytool 是一个Java数据证书的管理工具 ,Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里,包含两种数据:密钥实体(Key entity)-密钥(secret key)或者是私钥和配对公钥(采用非对称加密)可信任的证书实体(trusted certificate entries)-只包含公钥.
JDK中keytool常用参数说明(不同版本有差异,详细可参见【附录】中的官方文档链接):
内容概览:
keytool的几个常用的命令。
1.创建证书
2.查看证书库
3.导出证书文件
4.导入证书的信息
5.查看证书信息
6.删除密钥库中的条目
7.修改证书条目的口令
1.创建证书
keytool -genkeypair -alias "test1" -keyalg "RSA" -keystore "test.keystore"
说明:
密钥库密码为testtest
证书条目密码为testtest1,若别名为test2则密码为testtest2
这样为个不乱
功能:
创建一个别名为test1的证书条目,该条目存放在名为test.keystore的密钥库中,若test.keystore密钥库不存在则创建。
参数说明:
-genkeypair:生成一对非对称密钥;
-alias:指定密钥对的别名,该别名是公开的;
-keyalg:指定加密算法,本例中的采用通用的RAS加密算法;
-keystore:密钥库的路径及名称,不指定的话,默认在操作系统的用户目录下生成一个".keystore"的文件
注意:
1.“名字与姓氏”应该是域名,若输成了姓名,和真正运行的时候域名不符,会出问题;
2.再次输入密码,第一次输入的是密钥库(keystore)的密码,第二次输入的是证书条目的密码
3.这里所说的证书库和密钥库是等同的(个人观点)
为了测试需要,这里再创建两个别名为test2和test3的证书条目在test.keystore密钥库中,代码如下:
keytool -genkeypair -alias "test2" -keyalg "RSA" -keystore "test.keystore" keytool -genkeypair -alias "test3" -keyalg "RSA" -keystore "test.keystore"2.查看证书库:
keytool -list -keystore cacerts -storepass changeit
3.导出到证书文件
keytool -export -alias test1 -file test.crt -keystore cacerts
功能:
将名为test.keystore的证书库中别名为test1的证书条目导出到证书文件test.crt中
4.导入证书的信息:
keytool -import -keystore C:\bea\jdk142_08\jre\lib\security\cacerts -storepass changeit -keypass changeit -alias bocommca -file root.cer
keytool -import -keystore cacerts -storepass changeit -keypass changeit -alias bocommca -file root.cer上面一句是指定证书的路径,下一句是要先到目录下面
5.查看证书信息
keytool -printcert -file "test.crt"
功能:
查看证书文件test.crt的信息
6.删除密钥库中的条目keytool -list -keystore test.keystore删除密钥库test.keystore中别名为test2的证书条目
keytool -delete -keystore test.keystore -alias test2删除后查看密钥库test.keystore中的证书条目
7.修改证书条目的口令
交互的方式
keytool -keypasswd -alias test1 -keystore test.keystore
功能:
将密钥库test.keystore中别名为test1的证书条目的密码修改为testtesttest1
非交互方式
keytool -keypasswd -alias test1 -keypass testtesttest1 -new testtest1 -storepass testtest -keystore test.keystore
功能:
将密钥库test.keystore中别名为test1的证书条目的密码修改为testtest1