一、keytool 简介
keytool 是java用于管理密钥和证书的工具,它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。在JDK 1.4以后的版本中都包含了这一工具,它的位置为%JAVA_HOME%inkeytool.exe,如下图所示:
其功能包括:
- 创建并管理密钥
- 创建并管理证书
- 作为CA 为证书授权
- 导入导出证书
二、keytool的用法
三、生成证书
生成证书主要是使用" -genkey",该命令的可用参数如下:
示例:生成一个名称为tomcat的证书(cas服务https环境证书生成示例)
keytool -genkey -alias tomcat -keyalg RSA -keystore D:/cas.keystore
功能说明:
生成一个别名为tomcat的证书,该证书存放在名为cas.keystore的密钥库中,若cas.keystore密钥库不存在则创建。
参数说明:
-genkey:生成一对非对称密钥;
-alias:指定密钥对的别名,该别名是公开的;
-keyalg:指定加密算法,本例中的采用通用的RAS加密算法;
-keystore:密钥库的路径及名称,不指定的话,默认在操作系统的用户目录下生成一个".keystore"的文件。
注意:
1.密钥库的密码至少必须6个字符,可以是纯数字或者字母或者数字和字母的组合等等
2."名字与姓氏"应该是输入域名,而不是我们的个人姓名,其他的可以不填
执行完上述命令后,在D盘下生成了一个"cas.keystore"的文件,如下图所示:
四、导出证书
导出证书主要是使用" -export",该命令的可用参数如下:
示例:将名为cas.keystore的证书库中别名为tomcat的证书条目导出到证书文件cas.crt中
keytool -export -trustcacerts -alias tomcat -file D:/cas.crt -keystore D:/cas.keystore
执行完上述命令后,在D盘下生成了一个"cas.crt"的文件,如下图所示:
五、导入证书
导入证书主要是使用" -import",该命令的可用参数如下:
示例1:将证书文件cas.crt导入到名为test_cacerts的证书库中
keytool -import -file D:/cas.crt -keystore D:/test_cacerts
示例2:将证书文件test.crt导入到名为cacerts的证书库中(这里将会演示将证书导入到jdk的证书库中)
keytool -import -trustcacerts -alias tomcat -file D:/cas.crt -keystore %JAVA_HOME%/jre/lib/security/cacerts
注:次例中jdk证书库的默认密码为:changeit
六、查看密钥库里面的证书
keytool -list -keystore D:/cas.keystore
七、查看证书信息
keytool -printcert -file D:/cas.crt
八、删除密钥库中的条目
示例:删除密钥库cas.keystore中别名为tomcat的证书条目
keytool -delete -keystore D:/cas.keystore -alias tomcat
九、修改证书条目的口令
示例:将密钥库cas.keystore中别名为test的证书条目的密码修改为666666(别名为test的证书条目必须存在)
keytool -keypasswd -alias test -keystore D:/cas.keystore