Keytool是Java自带的一个密钥和证书管理工具。借助这一工具,用户能够管理自己的公钥/私钥对及相关证书,用于自我认证或者数据完整性及加密访问服务。它的位置位于%JAVA_HOME%\bin\keytool.exe,下面就怎么使用keytool生成数字证书简总结下。
基本命令查看:
创建证书
创建一个别名为ssl的证书,将该证书放在名称为ssl.keystore的密钥库中,若ssl.keystore密钥库不存在,则新建
命令:
keytool -genkeypair -alias "ssl" -keyalg "RSA" -keystore "ssl.keystore"
参数说明:
-genkeypair:生成一对非对称秘钥;
-alias:制定密钥对的公开别名;
-keyalg:制定密钥加密算法,示例中采用RSA加密算法;
-keystore:密钥库的路径及名称,默认在当前文件夹,即JDK bin目录下。
注意:名字和姓氏可以是IP或者域名,不是个人姓名之类的。
查看密钥库里的证书
keytool -list -keystore ssl.keystore
导出到证书文件
将该证书库ssl.keystore中别名为ssl的证书导出到证书文件ssl.crt:
keytool -export -alias ssl -file ssl.crt -keystore ssl.keystore
结果会在当前目录下生成一个ssl.crt的文件:
将证书文件ssl.crt导入到JRE运行环境的证书库cacerts中
本地示例地址D:\mecrt\tools\java\jre7\lib\security
keytool -import -keystore "D:\mecrt\tools\java\jre7\lib\security\cacerts"
-storepass changeit -keypass changeit -alias carcerts
-file "D:\mecrt\tools\java\jdk\bin\ssl.crt"
然后将该证书文件ssl.crt和ssl.keystore拷贝到tomcat的bin目录下,修改tomcat相关配置就可以以https的方式访问了,具体配置这里不作总结。