文章字数: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
指定导入的证书
例子
生成
keystore
keytool -genkey -v -alias broker -keyalg RSA -keystore broker.keystore -storepass brokerPwd -keypass brokerKeyPwd
查看
keystore
keytool -list -v -keystore broker.keystore
keystore
导出成证书keytool -export -alias broker -keystore broker.keystore -file borker_cert -storepass brokerPwd
导入证书到
truststore
keytool -import -v -file borker_cert -keystore client.truststore -storepass clientTrustPwd
jks
转p12
keytool -importkeystore -srckeystore keyStore.jks -srcstoretype JKS -deststoretype PKCS12 -destkeystore keyStore.p12