keytool的简介 http://baike.baidu.com/view/1855087.htm
SUN公司提供了制作证书的工具keytool。
在JDK 1.4以后的版本中都包含了这一工具,它的位置为
keytool的几个常用的命令。
1.创建证书
2.查看证书库
3.导出证书文件
4.导入证书的信息
5.查看证书信息
6.删除密钥库中的条目
7.修改证书条目的口令
1 创建证书
keytool -genkey -v -alias server -keyalg RSA -keystore %CER_ROOT_PATH%/server.keystore -dname %SERVER_DN% -validity 3650 -storepass %PASS_SET% -keypass %PASS_SET%
-v 显示密钥库中的证书信息
-alias 产生别名
-keyalg 指定密钥的算法
-keystore 指定证书的名称及路径
-validity 证书的有效时间
-storepass 存储库的密码
-keypass 指定别名条目的密码(这里是server的密码)
-dname 指定证书拥有者信息 如"CN=firstName,OU=org组织单位名称,O=bj组织名称,L=bj城市,ST=gd省份,C=cn"
如果 根据提示输入这项最后会设置keypass
2 导出证书创建cer文件
keytool -export -alias server -keystore %CER_ROOT_PATH%/server.keystore -storepass %PASS_SET% -rfc -file %CER_ROOT_PATH%/server.cer
将server.keystore 中别名为 server的证书导出到server.cer中
3 导入证书
keytool -import -file %CER_ROOT_PATH%/server.cer -storepass %PASS_SET% -keystore %CER_ROOT_PATH%/server.keystore -alias server_replay -noprompt
命令来将证书或证书链加到可信任证书的清单中,以增加一个实体到密钥仓库中,必须指定了一个别名。后续 keytool 命令必须使用这一相同的别名来引用该实体。
别名以及密码的理解
对所有的密钥仓库项(密钥项和可信任的证书项)的访问都要通过唯一的别名来进行。别名不区分大小写,即别名 Hugo 和 hugo 指的是同一密钥仓库项。
当用 -genkey 命令来生成密钥对(公钥和私钥)或用 -import 命令来将证书或证书链加到可信任证书的清单中,以增加一个实体到密钥仓库中,必须指定了一个别名。后续 keytool 命令必须使用这一相同的别名来引用该实体。
例如,假设您用别名 duke 生成了新的公钥/私钥密钥对并将公钥用以下命令打包到自签名证书中(参见证书链):
keytool -genkey -alias duke -keypass dukekeypasswd
这指定了一个初始口令“dukekeypasswd”,接下来的命令都要使用该口令才能访问与别名 duke 相关联的私钥。以后如果您想更改 duke 的 私钥口令,可用类似下述的命令:
keytool -keypasswd -alias duke -keypass dukekeypasswd -new newpass
这将把口令从“dukekeypasswd”改为“newpass”。
请注意:实际上,除非是作为测试目的或是在安全的系统上,否则不应在命令行或脚本中指定口令。如果没有在命令行上指定所要求的口令选项,您将会得到要求输入口令的提示。当在口令提示符下键入口令时,口令将被即时显示出来(键入什么就显示什么),因此,要小心,不要当着任何人的面键入口令。
4 查看名为server.keystore的证书库中的证书条目
5 查看 证书 keytool -printcert -file "server.cer"
6 删除server.keystore 中别名为server_replay的条目
7 更改密钥库某一条目的密码
keytool -keypasswd -alias server -keystore server.keystore
之后根据提示输入新密码:123456
keytool -keypasswd -alias server -keypass hpadmin -new 123 -storepass hpadmin -keystore server.keystore