文章字数:569,阅读全文大约需要2分钟
Keytool是一个Java数据证书的管理工具。
keystore
Keytool将秘钥(key)和证书(certificates)存在名为keystore的文件中。keystore中有两种数据
- 秘钥实体(
key entity),私钥+公钥 - 可信的证书实体(
trusted certificate entries),公钥
alias别名,不区分大小写。keystore下又若干别名条目
常用命令
-genkey: 在用户主目录中创建一个默认文件.keystore,还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书。没有指定目录,会生成在默认目录下。-alias: 产生别名-keystore: 指定秘钥库的名称。加上此命令,生成的各类信息将不在.keystore文件中-keyalg: 指定秘钥的算法,默认DSA,可以设置成RSA-validity: 创建的证书有效期是多少天-keysize: 指定秘钥长度-storepass: 指定秘钥库的访问密码(查看秘钥库内容需要)-keypass: 指定别名条目的密码(私钥的密码)-dname: 指定证书拥有者的信息CN=名字与姓氏,OU=组织单位名称,O=组织名称,L=城市或区域名称,ST=州或省份名称,C=单位的两字母国家代码-list: 显示密钥库中的证书信息,例如keytool -list -v -keystore,-storepass指定密码-v: 显示秘钥库中的证书详细信息-export: 将别名指定的证书导出到文件,-alias指定导出的别名,-keystore指定keystore,-file指定导出证书的位置及证书名称,-storepass密码-file: 指定导出文件的文件名-delete: 删除秘钥库中某条目,keytool -delete -alias指定删除的别名-printcert: 查看导出的证书信息keytool -printcert -file xxx.crt查看导出的证书信息-keypasswd: 修改秘钥库中指定条目口令,-keypasswd -alias指定需要修改的别名,-keypass 旧密码 -new 新密码 -storepass keystore密码 -keystore xxx-storepasswd: 修改keystore口令,-storepasswd -keystore e:\sture.keystore(需修改口令的keystore) -storepass 123456(原始密码) -new 321(新密码)-import: 将签名数字证书导入秘钥库keytool -import -alias指定导入条目的别名-keystore,-file指定导入的证书
例子
生成
keystorekeytool -genkey -v -alias broker -keyalg RSA -keystore broker.keystore -storepass brokerPwd -keypass brokerKeyPwd查看
keystorekeytool -list -v -keystore broker.keystorekeystore导出成证书keytool -export -alias broker -keystore broker.keystore -file borker_cert -storepass brokerPwd导入证书到
truststorekeytool -import -v -file borker_cert -keystore client.truststore -storepass clientTrustPwdjks转p12
keytool -importkeystore -srckeystore keyStore.jks -srcstoretype JKS -deststoretype PKCS12 -destkeystore keyStore.p12