1、基础知识
keytool用来管理私钥仓库(keystore)和与之相关的X.509证书链(用以验证与私钥对应的公钥),也可以用来管理其他信任实体。jks文件使用Java的keytool生成的,保证已经安装JDK
(1)keytool在电脑中的位置
(2)keytool中的名列
2、生成私钥
keytool -genkeypair -alias fzp-jwt -validity 3650 -keyalg RSA -dname "CN=jwt,OU=jtw,O=jwt,L=zurich,S=zurich,C=CH" -keypass fzp123 -keystore fzp-jwt.jks -storepass fzp123
命令说明:
(1)-genkeypair -genkeypair生成密钥对(公钥和私钥)
(2)-alias 产生别名,每个keystore都关联这一个独一无二的alias,这个alias通常不区分大小写;如:-alias fzp-jwt,命名了fzp-jwt
(3)-validity 参数可以指定所创建的证书有效期是多少天 ;如:-validity 3650,指定了10年有效
(4)-keyalg 指定密钥的算法 (如 RSA DSA(如果不指定默认采用DSA))
(5)-dname 指定证书拥有者信息;例如: "CN=名字与姓氏,OU=组织单位名称,O=组织名称,L=城市或区域名称,S=州或省份名称,C=单位的两字母国家代码"
(6)-keypass 指定别名条目的密码(私钥的密码),例如:-keypass fzp123
(7)-keystore 指定密钥库的名称(产生的各类信息将保存在.keystore文件中)
(8)-storepass 指定密钥库的密码(获取keystore信息所需的密码)
3、生成公钥
(1)安装openssl
http://slproweb.com/products/Win32OpenSSL.html
记得在windows变量中添加路径。
安装后可以查看版本
给出如下名列后
keytool -list -rfc --keystore fzp-jwt.jks | openssl x509 -inform pem -pubkey
测试结果如下
在cmd中输入上述名列,提示需要密码是,把上述例子的密码fzp123输入即可,
(1) -list 列出密钥仓库项的内容