keytool是jdk自带的一款ssl管理工具,jdk6和jdk7的keytool命令有些不同,jdk7的兼容jdk6的,这里用的是jdk7下的keytool。搞了两天,遇到各种问题,甚是艰难啊
[root@localhost ~]# keytool -help
密钥和证书管理工具
命令:
-certreq 生成证书请求
-changealias 更改条目的别名
-delete 删除条目
-exportcert 导出证书
-genkeypair 生成密钥对
-genseckey 生成密钥
-gencert 根据证书请求生成证书
-importcert 导入证书或证书链
-importkeystore 从其他密钥库导入一个或所有条目
-keypasswd 更改条目的密钥口令
-list 列出密钥库中的条目
-printcert 打印证书内容
-printcertreq 打印证书请求的内容
-printcrl 打印 CRL 文件的内容
-storepasswd 更改密钥库的存储口令
使用 "keytool -command_name -help" 获取 command_name 的用法
这是支持的命令,可以使用 keytool -command_name -help获得子命令的用法,如 keytool -genkeypair -help.
生成自签名的证书
[root@localhost ~]# keytool -genkeypair -alias rootca -keyalg RSA
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
[Unknown]: xx认证中心
您的组织单位名称是什么?
[Unknown]: xx认证中心
您的组织名称是什么?
[Unknown]: xxrenz^H^H^H^[[D
您所在的城市或区域名称是什么?
[Unknown]: zz
您所在的省/市/自治区名称是什么?
[Unknown]: gd
该单位的双字母国家/地区代码是什么?
[Unknown]: CN
CN=xx认证中心, OU=xx认证中心, O=xx, L=zz, ST=gd, C=CN是否正确?
[否]: Y
输入 <rootca> 的密钥口令
(如果和密钥库口令相同, 按回车):
[root@localhost ~]#
alias是别名,就是给某某证书取个名字,可以随便写,可以用changealias命令修改
keyalg是加密算法,有DSA,RSA,默认是DSA,因为DSA只能用于签名,不能用于加密,一般只需要签名功能
这里有两个密码:密钥库密码和密钥密码,密钥库是存储密钥的地方,他有密码ÿ